Diagrams
- Community list of comparisons between Text to Diagram tools
- Compares Graphviz, D2, Mermaid and PlantUML
- Made by the makers of
D2
Kroki
Unified API with support for BlockDiag (BlockDiag, SeqDiag, ActDiag, NwDiag, PacketDiag, RackDiag), BPMN, Bytefield, C4 (with PlantUML), D2, DBML, Diagrams.net (experimental), Ditaa, Erd, Excalidraw, GraphViz, Mermaid, Nomnoml, Pikchr, PlantUML, SvgBob, Symbolator, UMLet, Vega, Vega-Lite, WaveDrom and WireViz …and more to come!
- GitHub
- Gitlab integration
- Only for
GitLab Self-Managed
andGitLab Dedicated
, not forgitlab.com
- Only for
Ascii diagrams
likec4
- "Architecture-as-a-code with live diagrams"
- Website
- Docs
- Playground
D2
- Website
- D2 Playground
- Native Vim plugin
- Vim Script
- Obsidian plugin
- Some features are available on the proprietary TALA layout engine, i.e. Directions per container
Mermaid
- Mermaid vs. UML
- Mermaid live editor
- Integrated in gitlab
- Mermaid JS, library
- Mermaid cli
- Scale images
- see examples in
~/projects/diagrams/mermaid
Install
sudo pacman -Q mermaid-cli
Usage
Show which version of mermaid is installed:
```mermaid
info
````
Issues
Use pandoc to create PDF from markdown + mermaid
sudo apt install pandoc
npm i -g mermaid-filter
pandoc -F mermaid-filter -o freifunk.pdf freifunk.md
NeoVim plugin
- Render mermaid diagrams in Neovim with diagram.nvim
Issues:
- Could not configure it to only render on
InsertLeavei
orBufWinEnter
. The example config showsrender_buffer = { "InsertLeave", "BufWinEnter", "TextChanged" }
, but even when I take out"TextChanged"
it renders on every key stroke. - Even simple diagrams with subgraphs lead to a very high CPU load (load ~30), because dozens of chromium processes spawn
- Unexplained error
UML tools
- Violet UML Editor: Stalled development (2018)
- argo uml: Stalled development (2018)
- Umbrello: Avaiable as ubuntu deb package
- PlantUML: text to diagram, Stalled development (2018), available as .deb
DrawIO
Server rack / switch documentation
Blockdiag
- Development stalled
- Blockdiag can be rendered from Krok