Mermaid Modernisation Proposal #3811
sidharthv96
started this conversation in
Ideas
Replies: 1 comment
-
Regardless of anything else, it's abundantly clear that you're really passionate about Mermaid, @sidharthv96 THAT IS AWESOME. THANK YOU for spending the time and energy to put this together. This is good, HARD, labor. I thank you for doing it. |
Beta Was this translation helpful? Give feedback.
0 replies
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
-
As an 8-year-old project (wow!), Mermaid is starting to show its age, as some of our core dependencies have fallen behind.
This proposal is aimed at giving mermaid a fresh breath of air (water?), by replacing the deprecated components with their modern counterparts, whilst maintaining backward compatibility as much as possible.
Based on the activity chart, we're going stronger than ever before, thanks to the involvement of the founder @knsv, maintainers and our awesome community. We also passed 50k stars on GitHub 🤩.
There have been some notable PRs recently that has helped with modernization.
And some are already in the works to replace deprecated components.
dagre
/dagre-d3
withdagre-d3-es
#3809#2456 was pivotal in listing many issues and getting most of them resolved.
We have been getting wonderful feature requests and ideas, and some are held back due to lack of support in underlying libraries. So here is the list of main change we have to make, with some pros & cons.
jison
Issues
Possible alternatives
Good read: https://tomassetti.me/parsing-in-javascript/
Impact to end users
Any parser that we use should have 100% backward compatibility, so nothing should change for end users who create diagrams/integrate into their projects.
They'll get full Unicode support with Emojis.
Impact to Maintainers & Developers
Will have to transform existing Jison grammar into new format, ensuring compatibility.
Will get Typescript support if using Chevrotain, but the grammar is more verbose than JISON. Good for debugging and new devs, bad for writing if already familiar with jison.
Dagre
Multiple layout issues reported.
Alternative - https://js.cytoscape.org/
Impact to end users
Diagrams may look different as layout algorithm changes - There is dagre inside cytoscape incase they want to retail old look.
Will have support to easily select new algorithms that cytoscape supports.
Will have features like pan & zoom built in.
Direct export support
Headless rendering might be possible
Impact to Maintainers & Developers
Tons of code to rewrite. But can be done incrementally.
Dagre-D3
Alternative
dagre
/dagre-d3
withdagre-d3-es
#3809Impact - None?
Beta Was this translation helpful? Give feedback.
All reactions