[小众插件分享] d2-mode: 从文本到图表,一个相比 mermaid 更具可读性的选择

关于 D2 Lang:

D2 与 Mermaid.js、PlantUML、Graphviz 的对比:

2 个赞

观望一下,一直缺一个便捷的方式绘图

d2 好像画不了时序图,这个比较蛋疼

还没开发好。

PR 里的应该是用的 D2 自家的 TALA 渲染引擎。

语法很简单,也有高级一点的扩展,很适合手工画图。

自动生成还是 Graphviz 和 PlantUML 的工具多。

1 个赞

观望一下,d2 的语法比较符合人类直觉,用起来确实比较简单

Graphviz 写起来比较复杂,并且默认生成的比较丑。

PlantUML 还是可以的,一般时序图用起来挺好的。但是像架构图之类的,它还是不怎么方便。现在还是用 draw.io 手动画。用代码还是很难高效的绘画出好看的架构图。

2 个赞

我之前倒是花钱买了 OmniGraffle,不过是 iPadOS 版的。macOS 上它是对标微软 Visio 的。

OmniGraffle 画图表很爽,而且我还专门买了个能全文检索 OmniGraffle 文件内容的搜索工具(这个功能是我提议加上去的): easySearch

自从不用 iPad 发现画图的欲望也没了。 :laughing:

1 个赞

复杂的流程图或架构图还是要手工画, 这种工具看着很牛逼, 其实心智负担非常重, 特别是要重构架构图大范围挪动位置的时候, 基本上和写代码的负担一样重。

而手工画图就是选中一部分拖拽移动即可, 我自己开源项目的架构图都是笔记本触摸板 + Google Docs 画图完成的。

6 个赞

确实,这类画图心智负担确实大,自己画图可以参考优秀的作图弄得漂亮些,动力也会更足。

1 个赞

感谢分享,正需要。这两天还研究了下tikz,不熟悉用起来太慢了。d2 看起来不错,试用ing

d2-mode 能不能和org-mode 文件结合,绘制出多个org-mode 文件的链接关系?

你想多了,d2-mode 只是个调用 d2 命令行生成图像的插件。

你要的是类似 universal-ctags 一样的从文件中抽取信息再汇总的功能。

查看文件之间的链接关系,为什么不去用 org-roam 呢?

好吧! 如何在emacs中设置d2的路径: /opt/homebrew/bin/d2

不需要设置

我运行下面的示例:得到的图如下

root

root -> child A
root -> child B
root -> child C

child A -> grand child AA
child A -> grand child AB
child A -> grand child AC
child A -> grand child AD

child B -> grand child BA
grand child BA -> grand grand child BAA

与官方的图不一样。

D2 有三种渲染引擎,官方示例里的用的是自己的渲染引擎 TALA,需要单独安装。

看效果,估计默认还是用的转换为 Graphviz 渲染的。

d2可以将上面的代码画成从上到下,线的连接像官方的图么?

自己看官方文档吧,我也是刚接触,了解的不多。