Hacker News new | ask | show | jobs
by TeMPOraL 2847 days ago
Pros:

+ It's all plaintext. I love working with plaintext for all the usual benefits, so this fits.

+ PUML renderer is technically a free-to-download JAR, so it can presumably[0] integrate well with my Org-mode life.

Cons:

- Try to draw anything more complicated than three boxes and an arrow, and you'll be spending 90% of the time fighting the layout engine.

- It's even worse when you have your own opinion about the desired layout. No way to do that reliably, the result is very brittle.

I generally like it, but I'd like it 100x more if there was a way to explicitly pin some component to absolute coordinates. Or at least a better way for giving layout hints than soft constraints introduced through invisible links.

--

EDIT: A random idea if anyone is developing something PUML-like:

How about separating out layouting a bit, and letting me type in something like that:

  A     F    G
  B  C  D
           E H
And then continue with regular PUML code:

  package "core" #A {
     [something]
     [something-else]
  }

  ...

  [some-component #D]-->[some-component #E]

  ...
Basically, I wish I could draw a picture representing the rough layout of key image components, and have this as a hard constraint on positioning other elements.

--

[0] - Presumably, because I gave up on it after couple large-ish diagrams, just before my use has reached the threshold above which I consider Emacs integration.

2 comments

This is my main gripe with plantUML as well. It's an awesome tool, but you either have to surrender to the layout engine or lose your sanity.

It is especially frustrating when you add one item to a diagram and ALL the items shift around to completely new places.

I hope you don't mind, but I submitted your excellent idea to the Mermaid diagram folks: https://github.com/knsv/mermaid/issues/270#issuecomment-4170...
I don't; in fact, I very much appreciate it. This is a kind of thing I'd pursue if I didn't already have higher-priority work and personal projects, so I'd love if someone else could try this out.