Coworkers always accuse me of tomfoolery when I tell them it's already in there
Some stuff I'd like to share with the rest:
- PlantUML's default style has improved since the days of red/brown borders, pale yellow boxes, drop shadows and such but I've attempted fixing it before through a preset style [I've made before here](https://gist.github.com/jerieljan/4c82515ff5f2b2e4dd5122d354...). It's obsolete nowadays, since I'm sure someone has made a style generator somewhere, and last I checked, PlantUML allows a monochrome style out of the box.
- [Eraser](https://app.eraser.io) is promising, considering that it's trying to blend both diagram-as-code markup along with the usual visual diagram editor. I'm still seeing if it's worth picking up since Miro's hard to beat.
- On an unrelated note, [WikiJS](https://js.wiki/) is a self-hosted wiki that happens to support draw.io, PlantUML and MermaidJS diagrams out of the box. Quite handy to have for your own docs.
- I use Miro nowadays since it's significantly quicker to draw things freeform and to collaborate live with folks on a whiteboard at the cost of having your diagrams in markup, but it's easy to miss the integration that [you can actually import PlantUML](https://help.miro.com/hc/en-us/articles/7004940386578) and Mermaid diagrams in a Miro board too. You can also do edits too, but it's on its own PlantUML section, of course.
KeenWrite[3] can produce PDF documentation from Markdown documents that has PlantUML diagrams with elements stored in an external, machine-readable file. Here are screenshots showing variables on the left, diagram text in the middle, and a real-time render on the right:
* https://raw.githubusercontent.com/DaveJarvis/KeenWrite/main/...
* https://raw.githubusercontent.com/DaveJarvis/KeenWrite/main/...
KeenWrite supports all diagrams offered by Kroki, which includes "diagram-plantuml".
[1]: https://kroki.io/
Nevertheless one improvement I would like to see for PlantUML (and similar tools like Mermaid) is a way to separate content and style from layout... i.e perhaps have a viewer that can pop up and let the user reorganise the elements and save the absolute positioning to a separate sidecar file?
It's the only solution I found which allows tailoring a diagram if it renders poorly.
For example, if access switches are to be on the left, and trunk switches on the right, PlantUML is the only solution I found which adequately allows the user to add such constraints, via:
S1 --E-- S2
https://crashedmind.github.io/PlantUMLHitchhikersGuide/layou...
Can take compass coordinates from memory, in shorthand.
In Python, I pull a network topology from an API, then convert it to PlantUML, then edit a few arrows/lines so to point the right way, the entire topology adjusts accordingly, and generally I arrive at a useable diagram very quickly.
Way quicker than Visio, and nothing else seems to be able to do this (e.g. graphviz doesn't allow this).
I'd like to start doing this with my open-source as well.
We now publish draw.io SVGs. GitHub renders them and people view them. The rendering engine is effectively the browser which makes it very accessible.
I suppose this means our companies have differing cultures or some other factor I'm not aware of
I prefer plantuml but mermaid is nice enough.
For me, D2’s syntax is the easiest to write, but it outputs sparse diagrams that are difficult to read without a lot of zooming.
You can embed plantuml and drawio diagrams in Rust doc comments and have it rendered in the docs, using this crate
https://crates.io/crates/rsdoc
And you can generate plantuml from SQL tables using
https://crates.io/crates/sqlant (this one is a rust port of a go tool, https://github.com/achiku/planter)
And you can embed plantuml in mdbook
Last I heard, PlantUML has support for more types of diagrams, allows for themes and more customization.
Java as a dependency is not much better. It's also huge which is important if you build your diagrams in containers and/or CI/CD. It's also very slow to start. I'm always surprised when benchmarks show that Java is "fast", because it's so huge and has atrocious cold start time, that makes it very unpleasant to use for CLI utilities.