Generate Flowcharts from Text
flowchart.fun
flowchart.fun
1. Engineering diagrams, explaining concepts to other engineers who are using the diagram as a jumping off point to deeper explorations
2. "Business" diagrams - the sort of thing we want to see in a Medium article or presentation. The style and correct placement matters far more than engineering.
The first is very amenable to markdown style production - often we want to spend no more than a few minutes creating the diagram. We get (60?) 80% of the way there with 20% effort.
But with every markdown approach I have tried the remaining 20% is flat out days of work. There is almost always a need to place that box there and have this one below and to the right and dammit the layout engine will not agree.
What I would ideally like is a combo - markdown to get me most of the way there, and then drop into some vector format that lets me tweak.
Often I use invisible subgraphs to accomplish this sort of thing in GraphViz, but the markup for doing so is complicated and non-obvious.
But PlantUML's documentation is too scattered that it's hard to know how much it supports.
Overall, to me, PlantUML is one of the more promising trade-off for userability and sophistication.
I wonder if we could pool our resource together to help one reach to more userability.
Have the simple ones front and centre, but also go full pedal to the medal and show flesh out the really complex ones.
Recent and related shout-out: Neo4J has thankfully included some on their API documentation.
Tables are a pain, but most technical docs do not require rowspan and other things that are impossible to maintain in Markdown/reST/Asciidoc.
Diagrams are just a shitshow. PlantUML is the biggest player, and it tries to do the right thing by separating semantics and presentation, but kinda fails when your diagram grows too large.
I wish there was some tool that you could feed three separate human-readable inputs:
- styles, which let you define what your elements look like - semantics, which let you describe your elements and relationships - layout, which lets you manually rearrange the elements on your diagram (and is generated by a WYSIWYG tool)
Pikchr generates nice diagrams, but it's an all-in-one dialect. At least when I am reading well-written PlantUML I can understand the meaning of the diagram without seeing the rendered image.
The tool in the OP is nice, but it doesn't let you describe the layout at all.
Disclosure: I'm the dev
discussion of format: https://stackoverflow.com/questions/59416025/format-of-draw-...
Looks like they have an api too: https://jgraph.github.io/mxgraph/docs/js-api/files/index-txt...
You can write the markdown and then drag and drop boxes (or directly edit the SVG).
I only throw in D3 because it does have some features which make SVGs more maintainable and easy to write, but I've written many SVGs by hand over the years and it really isn't nearly as bad as many people think it is. I suspect a lot of people think it is very difficult because they only look at the terrible SVGs generated by GUI tools.
I've been meaning to forever but both svgs and d3 are complex enough I'm not sure where to start.
For starting with SVGs, just look for a simple tutorial like https://www.w3schools.com/graphics/svg_intro.asp to get a simple template, but focus on learning the path element. The path element is both foundational to a lot of custom SVG stuff and isn't too complicated, sort of like the Basic of graphics.
I've gotten the hang of SVGs, is MBostock's blog still the best place to start with D3?
restofthefuckingowl.jpg
https://github.com/blampe/goat
Embed diagrams in source code comments; build script greps through and writes out an SVG. A caveat is that to be adequately productive, you need rectangle-oriented editing, such as with Emacs’ “M-x string-rectangle”.
"A picture paints a thousand words", so why should we expect it possible to describe some pictures with less words.
Some paintings can be described effectively with "four tins of campbells tomato soup, one in each quadrant".
Other pictures cannot - "Adam reaching out to touch Gods finger"
Maybe we just need to paint sometimes, and maybe learn the difference between the two kinds - when we need to escape from code.
Input in this one is very simple and cool.
It's heavier-duty compared to most of the others you have listed, but should appeal to engineers who want something more robust.
BTW mine is only a list and I won't mind any feedback here in comments.
Anyone looking for a specific need can go through the links to find out which one is better.
Go through some of them. It's hard to summarize a tools function in a single snippet. Same goes for screenshots. How would you do that?
98% of people don't have time for that. If a snippet or tiny screenshot can't reveal some of the essence of the language it's probably not very good.
If you guys haven't tried building up a diagram, live, step by step like an ad-hoc slideshow, I seriously recommend it.
That might be their outlet perhaps after a spending a day being acutely focused on cutting code!
[custom id] hello world
child 1
child 2
(custom id) 1. hello
2. [foo] This line is Foo
3. This line is Bar and connects to Foo
4. (foo)This tool is amazing, and its coolness comes from the fact it's really simple. If you add "auto-adjusting" features that rewrite the code for you while writing, you're on the road to lose the simplicity and KISS aspect.
Please don't add new features, it's like gold as it is, @tone_row. The beauty and magic resides in the minimalism.
https://www.luminoslabs.com/insights/text-based-charts-with-...
One minor annoyance: I can't use tab/shift+tab to indent or dedent lines.
Present feeling: They finally got it right. This is how flowcharts should be made, by default.
For example, typing "Redshift" adds a Redshift db icon to the box.
Some text(2) Yes: (line num) No: (line num)
You can do it now with full nodes but would be nice to have a specific node type for that
This is my chart
This is a conditional statement
Yes: Do thing A
No: Do thing BThe blank or edit file can be saved locally as URL or .HTM file and can be reloaded and continue to be edited.
The UI is missing help, its only on the github page. Since its just a html file I embedded the help in a comment in the page. I just view source to look it up. It only adds a few hundred byte to each file.
Some functions don't work for me. When I get a round tuit I will will try to figure out how it works.
In spite of this it is enough to create impromptu drawings to support a lecture. I save them and give it to the students as part of the notes.
Exports to json or image.
I bet there's a lost history (or oral history, but they're the nearly same after 60+ years) of tools exactly like this that goes back to the times of the PDP-1 and super early hacker culture.
And I bet there's been a version of it written for every operating system at some point. It just seems so necessary and relatively straight forward.
Alternatives is blockdiag[0] with a online demo[1], and then of course graphviz[2] shipped with most distro(s).
[0]: http://blockdiag.com
[1]: http://blockdiag.com/en/blockdiag/demo.html
[2]: https://graphviz.org
Also an ability to click a line and create a connected node.
Also it would be great to drive the app from the diagram, ie generate text from the diagram.
Anyway I like it. I've used Linux Mint's built in Web Apps tool to create an offline version.
Here's a popular package: https://mitmproxy.org/ You might have to add some basic auth layer to it so as not to make it open to the world.
or just use your cellphone.
It would be great to have this as a command line tool.
I can envision a lot of cool features for this, like being able to add color via text markup, or being able to use circles instead of boxes for the nodes.
But I just can't stand using a website for it, defeats half the purpose of it. I want to be able to commit it to version control and regenerate it on the fly if needed.
In the end I settled with latex+tikz. And was promptly reminded of how clunky it can be, an unnecessary time-sink for a quick sketch (but cool if you need something polished).
"Markdown for State Machines"
foo
(1)
looks a bit brokenI noticed an issue for lines that are referenced by links. When I insert a new line above the linked line, the diagram loses linkages.
For example, in the example at flowchart.fun, inserting a new line above the first will destroy the diagram.
How do I export the diagram generated?
you can even define more specific placement if you need to.
node 1
child of node 1
node 2: (2) node 1
child of node 1
node 2
: (2)Can you do a > relationship? Two boxes flowing into one.
If I wanted to hire a web developer to build a web app that let the user quickly build marketing funnels, what type of person would I be looking for? Front end JavaScript developer?
Essentially like LucidChart lite
it's widely-used, more feature-full and more flexible, at the price of perhaps a slightly less intuitive format (though even that's debatable).
Online editing + rendering:
or here: