Show HN: Mermaid ASCII Diagrams

(mermaid-ascii.art)

234 points | by AlexanderGrooff2 months ago

20 comments

  • quuxplusone2 months ago
    Some nits:

    The "Example" buttons don't jump out at me; I found them but it took a while. Also consider labeling them with their point, e.g. "Example 3: Color"

    If you change the input text to something well-formed, the graph seems to update immediately. But if you change it to something ill-formed, the graph doesn't update immediately — and then if you click "Generate" manually, it blanks the input box. Either this is a bug, or the "Generate" button doesn't do what I think it does (i.e. generate output). Again, adding a noun to the verb might help. Or just adding some usage information somewhere on the page.

    For those like me who've never heard of "Mermaid," apparently it's like GraphViz's dot language but different. https://github.com/mermaid-js/mermaid I tried the flowchart example from Mermaid's own README, but it didn't come out right: looks like the shape characters [] and {} aren't handled.

    • lordswork2 months ago
      Counter-nit: I found the examples within a few seconds.
      • brink2 months ago
        Counter-counter-nit: I did not.
        • wigster2 months ago
          nor i
          • dragonsky2 months ago
            I did
            • flysand71 month ago
              I didnt, but also I was expecting the input prompt to already contain an example
    • AlexanderGrooff2 months ago
      Thanks for the feedback! I agree that the web UI can be improved (quite) a bit, most of my efforts went into the actual generation of the diagrams. I'll have a look at prettifying it.
    • matt32102 months ago
      Same, I had no idea there were examples until I read this.
  • virtualritz2 months ago
    This obviously needs a direct pipe into Svgbob!

    https://ivanceras.github.io/svgbob-editor/

  • nunobrito2 months ago
    Hey, where are the mermaids?!?

    But now seriously.. the diagrams are working really well for simple examples, thank you so much for sharing this tool. I have bookmarked your page, my documentation is based on text files and often have to build these kind of diagrams too.

    The example buttons took me a while to be found, but are good for syntax explanation. Thank you for making this available.

  • jonahx2 months ago
    Nice work, I love ascii diagrams. Especially useful when you want a visual explanation that can be embedded directly in source code.

    Small nit on layout: 90 degree joints should use "+" in the connecting lines, as they do in the boxes.

    • AlexanderGrooff2 months ago
      Thanks for the recommendation. I've added the "+" corners in v0.5.1.
  • zczc2 months ago
  • comebhack2 months ago
    I have been using Monodraw for a long time: https://monodraw.helftone.com/

    It's a macOS app and I've found it great. However if given an ASCII diagram, you cannot edit it with the same ease as creating a new one (e.g. reflowing text or resizing boxes).

    I really like the idea of having the mermaid source and the ASCII diagram together, so you could use the source to change the diagram if needed. But I feel that would feel cluttered to have both in a plain text file or comment, where ASCII diagrams shine.

  • ithkuil2 months ago
    Is there something that can turn those ascii diagrams back into mermaid sources?

    I tried the first example with gpt-o1 and the result wasn't bad:

        graph LR
        A --> B --> D
        A --> C
        B --> C
        D --> C
    
    would a smaller model but fine tuned on many syntetic renderings do a better job?
    • jcgrillo2 months ago
      It would be pretty cool to be able to draw a flowchart or graph on a tablet and have it automatically turned into mermaid source. That's exceptional compression.
      • ithkuil2 months ago
        For me it's more about the ability of modifying the diagram in a predictable way
  • piedpiper992 months ago
    I supposed it's good for basic usage. I just tried a more complex graph and it didn't render well.
  • girvo2 months ago
    Hah we rely on Mermaid a _heap_ at work for building internal dependency graphs from `yarn info` JSON data and a super lazy depth-first graph haha. Super useful, nice to see another renderer!

    ts-directed-graph outputs Mermaid :)

    This tool seems way more useful for hand-made ones, definitely bookmarking

    • danpalmer2 months ago
      Out of interest have you managed to get Mermaid graphs rendering outside of a browser?

      I was trying to do this a while back so I could do server side rendering of graphs, but it seemed to depend strongly on the presence of a DOM. Couldn’t quite get it working with JS-DOM either.

      • pjungwir2 months ago
        I've used [mmdc](https://github.com/mermaid-js/mermaid-cli) to generate mermaid images from a Makefile. It looks like it is implemented with puppeteer, so perhaps it doesn't quite fit your request. But if you just want something you can use at the cli, it is great.
        • danpalmer2 months ago
          Thanks. You're right, unfortunately this doesn't fit my needs, but I can see how it would be fine for CLI and casual use cases.
  • the_arun2 months ago
    I use this for generating AWS deployment diagrams, which is kinda similar - https://github.com/mingrammer/diagrams
  • Lorak_2 months ago
    Are you planning to support more of mermaids features? I tried one example where this could be useful to me - Mermaids gitGraph - and it looks like it's not supported.
  • abraxas2 months ago
    In the age of AI someone automated Mentifex[1]!

    [1] https://nothingisreal.com/mentifex_faq.html

  • prmoustache2 months ago
    graph TD

    project is called Mermaid ASCII -->|expectation| It supports mermaidjs syntax

    It supports mermaidjs syntax -->|I tried| It doesn't

    It doesn't -->|conclusion| I am a bit bummed

    https://mermaid.js.org/syntax/examples.html

    • AlexanderGrooff2 months ago
      The example you post works just fine ;)

      On a serious note, yes not all syntax noted in the Mermaid docs work yet. I'm planning on adding more coverage of the Mermaid syntax over time. For now the basics work and (hopefully) shows its potential.

      • prmoustache2 months ago
        Yeah, first try I copy pasted the pie charts example wondering how it would render in ascii and was noooo
  • flykespice2 months ago
    Wow! this will come pretty in hand when building plaintext documentation using diagrams.
  • nlake9062 months ago
    love it, will definitely be using it for sketching documentation in comments for SQL sprocs, etc.

    One request: support for self-reference, i.e. "A --> A", "A --> A & B"

    • AlexanderGrooff2 months ago
      Thanks, that's a good suggestion. I'm also noticing that's not working as intended.
  • ewalk1532 months ago
    This would be great to build into project readme workflows.
  • 2 months ago
    undefined
  • octopusRex2 months ago
    I'm disappointed. I was actually expecting lovely ascii art pictures of mermaids.
  • airstrike2 months ago
    [flagged]
    • 2 months ago
      undefined