Replies: 3 comments 1 reply
|
I use Mermaid in both ways here at GSynergy: I write diagrams and also (used to) embed Mermaid into our software. I was very surprised to learn about the browser dependency of Mermaid when my Node unit tests started failing (https://github.com/orgs/mermaid-js/discussions/7085), and I switched to Graphviz when I learned about it. A browser has millions of lines of code in its transitive dependencies, and it's just not really designed to be a library. Using a browser as a library is not just slow, but it also introduces attack surface from a security perspective and means that the behavior of your software can change whenever the browser version gets updated. We use Markdown all over the place and use Mermaid/Graphviz for embedding diagrams into it:
We use GitHub and sometimes check these files in. With Graphviz, that means people have to install an optional browser extension in order to get the diagrams rendered as they browse. Our needs for the diagrams are usually very modest, just basic nodes with labels that are connected by lines, preferably with auto-layout. For more complex situations, I'd love semi-manual control, e.g. putting things into rows/columns or designing diagrams with some kind of nesting construct. Specific diagram types like "ER diagram" or "sequence diagram" are not very interesting in my world as far as I can think; they tend to not be quite right since everyone does them a little differently. I would get much more value if you beef up the general-purpose diagram modes compared to the specific types. Thanks for looking into a browser-free option for Mermaid! |
|
I write diagrams and I embed Mermaid in documents, so both sets of questions apply. What I use. C4 ( Layout. Layout quality matters most to me, and I would accept slower rendering for it. What usually looks wrong is routing: edges that overlap or run through a label or a title, arrowheads piled into one blob, and diagrams too wide for the page. For documents the size is the limit: a 9-step flowchart chain in Open v12 work. I have open v12 pull requests for these areas: C4 (22), BPMN (2), I have no numbers on bundle budget, fonts or HTML-label use, so I leave those questions to others. |
|
Porting our C4, BPMN and swimlane work to the v13 alpha as plugins found no blocker, but four gaps in the plugin contract. All four ported plugins render in Node with no DOM on What fit without trouble. Hand-written parsers on Gaps in the contract (each is worked around in the repo, evidence in
Bugs found on the way, filed with the v13 alpha template: #8714 (the The open v12 pull requests stay current either way; they are indexed in #8713. |
Uh oh!
There was an error while loading. Please reload this page.
Many of you have told us Mermaid has gotten heavy. The bundle is large, rendering is slower than it should be, server-side rendering needs a browser, and the security surface is bigger than a diagramming library should have.
The v13 alpha is a proof of concept of one answer: a full rewrite. The other path is gradual updates to v12. We haven't chosen yet, and this discussion will help us decide.
The proof of concept
Try it with
npm install mermaid@v13-alpha. It only renders flowcharts so far and isn't ready for production. Getting started with the v13 alpha has the details.What we'd like to know
Start your reply by saying whether you write diagrams or embed Mermaid in a project, then answer any of these. One answer helps. If you'd rather click than write: [users poll] · [integrators poll]
Taking part
Mermaid is MIT-licensed. Many of its ideas came from issues, pull requests and discussions. Thank you to everyone who contributed. The company behind mermaid.ai (formerly Mermaid Chart) contributes engineering time to it, including much of the work on v13.
Thank you for building with Mermaid. 🧜♀️
All reactions