D2: Diagram Scripting Language
- mg - 23661 sekunder sedanLooking at the syntax, I wonder how close one could get to it in a "normal" programming language.
When I read this, I see this Python line in my mind:x -> y: hello world declares a connection between two shapes, x and y, with the label, hello world
This is of course a lot longer. The reason is that D2 seems to rather use operators than functions. So another approach could beconnect('x', 'y', 'hello world')
This would be possible to implement if the language supports overloading the __add__ and __mul__ functions of the str class. Python does not support it though. So I guess one would have to put at least one instance of a custom class into the mix. Say 'scene', then one might be able to achieve the above with this line:'x' * 'y' + 'hello world'
Meaning "Put a connection between x and y with label 'hello world' into the scene".scene + 'x' * 'y' + 'hello world'Hmm.. also not very close to the D2 syntax. So a DSL for diagrams seems to be warranted.
- alixanderwang - 29205 sekunder sedanCoauthor of D2 here. Lately I've been noodling on the idea of expanding the animation capabilities. I think out loud a bit here, and if you have thoughts, would love to hear them:
- rtpg - 34595 sekunder sedanI have been looking at things like D2 and Penrose, trying to wrap Python around them to make it a bit easier to script up diagrams based on data.
Working through the problem I realize I probably would have a better time with something like Haskell but I do think the lower the barrier to entry is for drawing up stuff with these tools the more people will reach for programmatic diagramming to help debug and explain things.
The biggest problem with most of the declarative tools like D2,dot,mermaid etc is that they tend to not really offer "declare, then tweak" workflows. You can of course generate some SVG and then tweak it in Inkscape, but sometimes you just want to move something a bit after layout, constraints be damned.
Penrose makes that easier, at the cost of ... I guess everything else being weirder and randomized.
- snowfield - 13681 sekunder sedanLove d2, using it for years. I use it whenever someone asks me to create a visualisation. And I regularly tell people about d2 trying to push it internally haha
Enterprise is way too expensive though. And I can't natively render it anywhere. So I'm limited to only personal use.
3000usd / year for a single TALA license is... Well, not justifiable. And I'm not sure how much d2 studio is on top...
I'd love to test TALA though, but even the personal license at 120usd is steep for drawing some stuff.
Just giving a helm chart or system description to an llm and having it one shot a perfect diagram which code I can easily view and edit is also a big gamechanger for me
Sucks to not have it just render natively anywhere, I think confluence cloud can do it. But I think the add on is a paid addon.
- viraptor - 30141 sekunder sedanIt's got a sketch mode included! https://d2lang.com/tour/sketch/
And tool tips / links: https://d2lang.com/tour/interactive/
Those two make a huge difference for me.
- teleforce - 38929 sekunder sedanRecent post on D2 (73 comments):
[1] D2 (text to diagram tool) now supports ASCII renders:
- bargainbin - 40694 sekunder sedanD2 has a lot of merits but there’s little that sells it over PlantUML or Mermaid - I do feel like diagrams-as-code is still waiting for a killer program that makes everything else obsolete.
I’m forever chasing that dragon. In the meantime I still recommend D2 if PUML is feeling a bit stale.
- benzguo - 41162 sekunder sedanD2 has been around for a while (and has been posted here before) but still surprisingly unknown. It's so much better than mermaid – giving them a boost with this post!
- benzguo - 40463 sekunder sedanI chose D2 as for our AI's "generate diagram" tool in https://zo.computer and it works quite well. I think the fact that D2 is more expressive than Mermaid is a useful property when doing AI-aided diagram generation.
Nördnytt! 🤓