Suport for PlantUML

Would be good with support for creating PlantUML diagrams. In VSCode, Boostnote etc, it tends to be done using a code block

planuml
plantuml dsl goes here



And the in the preview simply renders the image it returns.

One additional suggestion, if you look at this, please give us the option of choosing the plantuml server, so we can point it to a local instance of plantuml if needed.

38 Likes

I suggest also the support for Support diagram: flowchart, vega-lite. Maybe as plugins so that you can use what you prefer and only if you need it

1 Like

Great idea, plantuml is a great tool.

3 Likes

I would love to see this as well. They use graphviz under the hood and have a free web server for image generation. https://plantuml.com/server

PlantUML is like the markdown for UML diagrams. Its an open source and there is reference implimentation for it. Would complement Markdown.

2 Likes

What are the benefits of this over Mermaid, which is already implemented?

never heard of Mermaid. I’ll check it out, thanks. How does one use it in Obsidian?

Looks like plantuml has more diagrams and the documnetation on their web page isn;t broken.

Sorry, should have included a link: https://mermaid-js.github.io/mermaid/#/

What about Mermaid’s documentation is broken? I haven’t seen anything amiss!

1 Like

This request looks duplicating with Suport for PlantUML

I’m also one of those who are longing this feature. It’s shame if our votes were distributed to two cards

1 Like

PlantUML has some handy diagrams that are not supported by Mermaid. Mindmaps and WBS, for example.
As a workaround, Kroki can generate a link to svg, which then can be pasted in Obsidian with ![]() . I actually have a match in espanso to get a deflate + base64 value of a diagram and then add it after the last slash in ![](https://kroki.io/plantuml/svg/)

  - trigger: ":kroki"
replace: "{{outputKroki}}"
vars:
- name: outputKroki
type: shell
params:
cmd: "pbpaste > /tmp/kroki.dat; cat /tmp/kroki.dat | python -c \"import sys; import base64; import zlib; print(base64.urlsafe_b64encode(zlib.compress(sys.stdin.read(), 9)))\";"
trim: true

3 Likes

I hope that the Plantuml also supports by Obsidian like Mermaid.
My company adapts the Confluence and most of diagrams are drawn by the Plantuml at work.
With both diagram tools, I can get more fun to use Obsidian.

3 Likes

I want to add another +1 for this.

I’ve crossed out the diagrams already supported by mermaid:

PlantUML is a component that allows to quickly write :

The following non-UML diagrams are also supported:

In mermaid there are two which are not supported (afaik) in PlantUML:

• Pie Chart
• User journey
5 Likes

Also, just to add it in there, PlantUML has some nifty plugins which are available “for free” in markdown editors supporting it.

For example, in visual studio code (using the plantuml+markdown extensions), I can literally just add one includeurl line to my plantuml code and get full support for C4 diagrams.

3 Likes

I would like to bring up that the Entity Relation Diagrams in Mermaid is not what it is in PlantUML. I’m trying to make an ERD for my database, but mermaid doesn’t support adding table column names, types, primary keys and so on like what is available in plantuml

5 Likes

Maybe koki.io would be a great option.

https://kroki.io
Kroki Creates diagrams from textual descriptions!
Kroki provides a unified API with support for BlockDiag (BlockDiag, SeqDiag, ActDiag, NwDiag, PacketDiag, RackDiag), BPMN, Bytefield, C4 (with PlantUML), Ditaa, Erd, Excalidraw, GraphViz, Mermaid, Nomnoml, PlantUML, SvgBob, UMLet, Vega, Vega-Lite, WaveDrom… and more to come!

1 Like

I just added a plugin supporting PlantUML: PlantUML.
It is already listed inside Obsidian.

7 Likes

Joe - superb! Thank you so much.

Does anyone have a good PlantUML theme to match dark themes in Obsidian?

skinparam monochrome reverse


only goes so far …

1 Like

the one in the demo is Cyborg from home | [“Puml Themes”]

2 Likes

That’s nice. For others exploring this, you can insert an include at the start of your code, referencing the theme URL (though I guess there are performance efficiencies if you store it locally).

!include https://raw.githubusercontent.com/bschwarz/puml-themes/master/themes/cyborg/puml-theme-cyborg.puml

Bob -> Alice : hello


Themes don’t seem to work on wireframes?

Ah, themes do work with wireframes, the include has to come after the @salt:

@startsalt
!include https://raw.githubusercontent.com/bschwarz/puml-themes/master/themes/cyborg/puml-theme-cyborg.puml
{