[HN Gopher] Generate Flowcharts from Text ___________________________________________________________________ Generate Flowcharts from Text Author : tonerow Score : 324 points Date : 2021-03-01 15:41 UTC (7 hours ago) (HTM) web link (flowchart.fun) (TXT) w3m dump (flowchart.fun) | yubrshen wrote: | Very interesting. It might be very powerful to somehow integrate | with emacs/vim so that their wordsmith capability can facilitate | the little discipline in text editing. | | How do I export the diagram generated? | MavropaliasG wrote: | I wish mermaid was as easy | jsmcgd wrote: | It would be great to have an option to be able to save the text | to a file, and load text from a file. | | 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. | yardshop wrote: | The text lines are just a single textarea element, you can copy | from and paste into it. But saving and loading files would be | convenient too. | bsldld wrote: | There is an option to draw diagrams with Markdeep: | https://casual-effects.com/markdeep | chrisweekly wrote: | Very nice! I've just started playing with Kroki.io (a "universal" | API over many diagramming libs including mermaid and excalidraw). | einpoklum wrote: | This is silly, just use graphviz: | | http://graphviz.org/ | | 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: | | https://edotor.net/ | | or here: | | https://dreampuf.github.io/GraphvizOnline/ | IncRnd wrote: | This is a great idea! Thank you for sharing. | | I 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. | boksiora wrote: | Really cool!! Can you post it on GitHub ? I can use it while | making documentation | xipho wrote: | I'm in love. I want this as part of an assertion workflow for | some of the graph building interfaces we're envisioning for | biological data. For example you could allow lines to call from | autocompletes, and store some metadata (e.g. extensions of | labels) so that the whole widget could be embedded in your tool. | augusto-moura wrote: | I would love to see this as a cli, I'm tired of PlantUML's[1] | document compilation time. Guess even the plain text tools are | made in React nowadays, sigh | | [1]: https://plantuml.com/ | pionar wrote: | I've had no problems with PlantUML's compilation time. How | large are these documents? | sorokod wrote: | There is a plantuml intellij plugin with split screen for | text || diagram. Changes in the text are rendered pretty much | instantaneously | augusto-moura wrote: | Pretty small actually, they don't take like hours, but just a | few seconds, the problem is the preview feedback, I like to | keep a entr and feh open while a edit the document to give a | live preview of my changes, the problem is that the 3-4 | seconds latency really mess this up | touisteur wrote: | Are you thinking of the default java gui for previewing | plantuml docs? I think there's a timer down there to avoid | polling the FS too often. Using a simple editor where | everystroke recompiles, red warning in status bar while | syntax is not OK (while still displaying the last good | one), a 100loc canvas display window, done. | jazzex wrote: | I like excalidraw. https://excalidraw.com/ | | Exports to json or image. | chrisallick wrote: | Thats faster than Google Slides? | msci100 wrote: | This is really cool. I frequently have to build reference | architectures for work. I would love to add a feature where if | you put quotes around a word, it would search for a folder of | logos and add the tool's logo to the square. | | For example, typing "Redshift" adds a Redshift db icon to the | box. | Tenal wrote: | 404. | josephjrobison wrote: | Love this interface, slight deviation but related question: | | 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 | cced wrote: | I took a look at the demo of the graphing library that is used | and it seems there are some performance issues. Does anyone know | how these might be fixed? | | https://js.cytoscape.org/demos/colajs-graph/ | oneweekwonder wrote: | definitely cool for being a spa! | | 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 | tunesmith wrote: | How do I link two parents to a child? This didn't work: | node 1 child of node 1 node 2: (2) | tjoff wrote: | Just today I was browsing around for a while for something like | this. | | 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). | kowlo wrote: | Can achieve something similar in Jupyter Notebook with bockdiag | https://datacrayon.com/posts/tools/jupyter/block-diagrams-wi... | genericone wrote: | Unfortunately my corporate firewall/IT-Policy blocks this page, | possibly due to the *.fun domain. Any other way to try this out | for those working in an office? ( I know I'm an outlier at this | time) | anonu wrote: | setup a web-based proxy in the cloud - make sure its in front | of a .com domain (that does not have the word "proxy" in it) | and get your SSL certs right. | | 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. | IncRnd wrote: | Are you seriously counseling someone to run mitmproxy in | order to puch a hole out of their employer's network? | tonerow wrote: | Here's the raw netlify domain - https://agitated-knuth- | acd401.netlify.app/ | persedes wrote: | https://www.wikihow.com/Use-Google-As-a-Proxy ? | renlo wrote: | How do you have a self referential edge? (ie, an edge to and from | the same node) foo (1) | | looks a bit broken | tonerow wrote: | I agree, this could really be improved. I'm going to make a | github issue so I remember to see if there's a solution to this | in the coming days. Thanks for the feedback! | silasb wrote: | Would be cool if you modified the chart and it kept it's position | when editing. | awaythro15234 wrote: | There is also Pikchr, made by Richard Hipp (creator of SQLite). | | https://pikchr.org/home/doc/trunk/homepage.md | miguelmota wrote: | Incredibly intuitive and simple. Bookmarked! | pstuart wrote: | Another somewhat similar tool (from the team at SQLite, and used | to make the diagrams contained therein): | https://pikchr.org/home/doc/trunk/homepage.md | jedimastert wrote: | I've often given nested bullet point lists as an example of trees | when I was tutoring freshmen-level CS. This is fun | smusamashah wrote: | A list I compiled of 40+ similar text to diagram tools. | https://xosh.org/text-to-diagram/ | | Input in this one is very simple and cool. | mysterydip wrote: | Is there a way to tell which are downloadable/usable | offline/locally vs which are websites without clicking through | each one? | smusamashah wrote: | I needed these tools for quick in-browser use so they are | mostly online. Only few of them can be used offline. | Veuxdo wrote: | Missing Ilograph: https://app.ilograph.com/ | | It's heavier-duty compared to most of the others you have | listed, but should appeal to engineers who want something more | robust. | smusamashah wrote: | This is amazing. Basically making architecture diagrams from | yaml. | yubrshen wrote: | It's much more sophisticated! It might be very powerful to | have some wordsmith support in the authoring of the text, for | example, in the org-mode of emacs, especially, the collapse | (folding) of sub-trees. | ciceryadam wrote: | One more to add: https://diagrams.mingrammer.com/ | smusamashah wrote: | This needs to be installed and coded with a programming | language. This list isn't about drawing with programming | languages. | breck wrote: | I have some feedback. Would love to chat. My email is in | profile. | smusamashah wrote: | Mine is profile name | | BTW mine is only a list and I won't mind any feedback here in | comments. | breck wrote: | One main idea that would make your list 3x better: add a | code snippet from each one. | smusamashah wrote: | This is a really good idea, thanks. Snippet won't be | enough to cover the usages though. Most of these tools | use varying syntax for different diagrams. | | 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? | breck wrote: | > Anyone looking for a specific need can go through the | links to find out which one is better. | | 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. | tijuco2 wrote: | I'd like to suggest this one here too https://asciiflow.com/. | I've been using it to share ideas with engineers and everybody | likes it | kleer001 wrote: | Gorgeous! | | 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. | bleepbaboop wrote: | Implementing the use of a '?' in order to generate a diamond | shaped "if/else" would be nice. For example: | | Some text(2) Yes: (line num) No: (line num) | flanbiscuit wrote: | This would be nice. | | 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 B | monkeydust wrote: | A lot of my emails are becoming like this - structured, bullet | points, 'if-then-else' like statement although not that explicit. | This could be a nice way to add visualisation to it. Maybe - | although everytime I have tried to do something too different | with email it has failed. | robohoe wrote: | I've started doing the same. Folks' reading comprehension is in | the gutter these days. Bullet points help structure thoughts | and ideas. | enw wrote: | Is reading comprehension in the gutter, or are people more | resistant to emails full of badly-structured fluff? | layer8 wrote: | I'm surprised the line-number references don't auto-adjust when | inserting/splitting/joining lines. That's not very practical. | tonerow wrote: | I totally had this thought too when making it. The logic is | super simple as-is, so I was scared if I went down the rabbit | whole of trying to auto increment/decrement line numbers I | might muddy things up. I'll see if add that functionality | cleanly at some point (or if you'd like to feel free to take | out a PR!) Thanks for the feedback! | beaconstudios wrote: | alternatively you could link to nodes by referencing their | label? You might just also want an option to not render that | label (ie have it be for the writer's benefit only). | mooneater wrote: | like graphviz does | seph-reed wrote: | Id's would be more than good enough, and super easy to | implement. Something like this 1. hello | 2. [foo] This line is Foo 3. This line is Bar and | connects to Foo 4. (foo) | tonerow wrote: | Oh, I like this implementation a lot! I'll paste it into | github issue so I don't forget | monstersinF wrote: | Let the user create their own labels? | sixti60 wrote: | I disagree. The simplicity here is a cool and rare feature. | | 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. | splatzone wrote: | Very nicely done. I'll be using this a lot! | voxic11 wrote: | Another similar tool that I have used in the past is | https://mermaid-js.github.io/mermaid/#/ | flying_sheep wrote: | Did you find a better one? :p Or just no longer making | diagrams? | enlightens wrote: | I've been using that lately for project documentation. The | reduction of context-switching has been incredibly helpful. | | https://www.luminoslabs.com/insights/text-based-charts-with-... | teabee89 wrote: | This is really simple but edge from 6 to 1 should not cross node | 4 in the visualization. Also it would be useful to show how to | escape or if escaping works at all: how to escape ":" or "(1)"? | multiline? | 4b11b4 wrote: | The nodes are free to drag around. | zupreme wrote: | Every so often a utility feels so intuitive that one thinks, | "They finally got it right". | | Present feeling: They finally got it right. This is how | flowcharts should be made, by default. | vasergen wrote: | looks cool and easy, like it | lifeisstillgood wrote: | I have come to the conclusion there are two kinds of audience and | two kinds of diagram, abs they almost exactly overlap | | 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. | yubrshen wrote: | Have you tried PlantUML? It provides means of adjusting the | layout. I use it often, most of the time the adjustment is good | enough for engineering communication within minutes of | adjustment. It could be better if there is more cohesive | documentation of its support for the adjustment. I had to | search on Google many times to figure out how to add the | adjustment. The adjustment consists of directives of placement | and direction of links, the length of links, grouping of notes, | etc. I feel that it's very promising with more popular support. | orthoxerox wrote: | I agree. I looked at migrating our technical documentation out | of MS Office documents into some diffable format and it were | the diagrams that killed the initiative. | | 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. | Veuxdo wrote: | Ilograph fulfills 2 out of 3: diagrams are broken up into a | model (resources) and perspectives (their relations). The | layout is always automatic, though. As a plus, though, this | allows them to be interactive and dynamic. | | Disclosure: I'm the dev | mumblemumble wrote: | I'm curious if you could get from an 80% solution to a 90% | solution by just adding some markup to say things like, "This | node should be to the left of this other one?" | | Often I use invisible subgraphs to accomplish this sort of | thing in GraphViz, but the markup for doing so is complicated | and non-obvious. | yubrshen wrote: | PlantUML provides such extra "perusation" to the layout. It | works often. | | 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. | joshspankit wrote: | This kind of thing is exactly why we need to normalize complex | examples. | | 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. | plainoldcheese wrote: | agreed it would be nice if the markdown just generated a | standard svg that you could then edit, or even just an html | canvas where you can drag them around a bit more and add some | color before exporting as an image | jacobmischka wrote: | That is exactly what this link does, minus the color. | codeulike wrote: | diagrams.net (formerly draw.io) have an xml format that seems | fairly open and they can also read/write a bunch of other | formats (see here https://www.diagrams.net/blog/import-formats | ) so something that gives you their xml format as a starting | point might make sense. | | 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... | vjeux wrote: | I would love to see an integration with excalidraw where you | write text to seed the diagram and then do the touch ups with | something like excalidraw. That would solve I think your | workflow. | stevesimmons wrote: | Please give me a combination between Excalidraw and Graphviz, | with stylesheets, and layouts generated via a straightforward | Python API, immediately displayable in a Jupyter notebook, | with a display widget having hooks to move items around, | giving auto-updating a Python property dict. | breck wrote: | Love it!!! | plainoldcheese wrote: | you can do a similar thing with PIC and groff, though thats not | always as convenient as having it right inside your markdown | document. | | you can even define more specific placement if you need to. | webdevatlurk wrote: | This seems really nice as a sketchpad for small flowcharts. I'd | definitely use it to map out a small piece of work, because I'm | terrible at laying out flowcharts on scrap paper without wasting | space or painting myself into a corner. | | One minor annoyance: I can't use tab/shift+tab to indent or | dedent lines. | tonerow wrote: | Thank you, that's a good suggestion. Making a note | z92 wrote: | Do it for all the selected lines, when multiple lines have | been selected and tab pressed. | bdorn wrote: | This is nice! Wish it took over tab key for indentation though. | tonerow wrote: | Someone just fixed this in a PR! | andy_ppp wrote: | Wow, the use of this as a Twitter bot could be both awesome and | horrendous... | namuol wrote: | Somewhat related: https://sketch.systems | | "Markdown for State Machines" | zacharycohn wrote: | Yup, I love it. | | Can you do a > relationship? Two boxes flowing into one. | zacharycohn wrote: | Figured it out! That was not super intuitive, but I've got it | now. | regus wrote: | I love this idea. | | 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. | JustSomeNobody wrote: | Github link is at the bottom. | taylodl wrote: | I use Mermaid (https://mermaid-js.github.io/mermaid/#/). The | killer feature for me - you can write Mermaid scripts in your | code comments and there's a plugin available for VS Code that | will render it. It's awesome! | naebother wrote: | And if you're using Sphinx to document, you can also just | inline the diagrams in your .rst docs: | https://github.com/mgaitan/sphinxcontrib-mermaid | beefman wrote: | These aren't quite flowcharts.[1] Still looks like a useful tool. | I like the syntax. | | [1] https://en.wikipedia.org/wiki/Flowchart | Zhyl wrote: | I have now used this to explain some of our architecture to a | client over Teams. | | If you guys haven't tried building up a diagram, live, step by | step like an ad-hoc slideshow, I _seriously_ recommend it. ___________________________________________________________________ (page generated 2021-03-01 23:00 UTC)