Repolode
d2lang

d2lang/d2

一种文本化的图表脚本语言及命令行工具,可将 .d2 文件编译为 SVG、PNG、GIF、PDF 或 PPTX 图表。

可替代:LucidchartVisio

Star
25,701
Fork
767
未关闭 Issue
536
最近提交
10天前

这是什么?

D2 是一种图表脚本语言,你可以用纯文本描述节点、连线、容器和样式,再通过 D2 命令行工具渲染为 SVG、PNG、GIF、PDF 或 PPTX 文件。开启 watch 模式后,源文件每次修改都会自动重新渲染,并刷新浏览器中的预览。

项目内置 Dagre(默认)、ELK 和 TALA 三种布局引擎,可通过命令行参数、环境变量或 D2 源码中的配置切换。它还支持手绘风格渲染和 LaTeX 标签,解析器能在文件出错时报告多处错误。自动格式化与语法高亮让维护大型图表更加方便。

D2 也可以作为 Go 库在程序中生成图表。项目提供 VS Code、Vim、Obsidian 等编辑器插件,以及多个面向 Markdown 工具链的社区插件。

核心功能

  • 01将纯文本 .d2 脚本转换为 SVG、PNG、GIF、PDF 或 PPTX 文件。
  • 02提供 watch 模式,文件变化时自动刷新浏览器预览。
  • 03内置 Dagre、ELK、TALA 三种布局引擎,可按图表选择。
  • 04解析器可报告多处错误,并自带自动格式化与语法高亮。
  • 05可作为 Go 库在代码中以编程方式生成图表。

适用场景

  • 将软件架构图与代码一同存放在版本库中,便于维护和审查。
  • 以可比对、易评审的文本形式维护系统图和网络拓扑图。
  • 在 Go 程序或文档构建流程中自动生成图表。
  • 在基于 Markdown 的文档站点中绘制实体关系图或流程图。

快速上手

  1. 1

    使用 README 中的安装脚本安装 D2

  2. 2

    通过 Go 安装 D2

    go install github.com/d2lang/d2@latest
  3. 3

    创建输入文件并以实时重载方式渲染

    echo 'x -> y -> z' > in.d2 && d2 --watch in.d2 out.svg

使用前须知

  • 推荐的安装方式是通过 curl 管道执行 sh 脚本,部分用户可能不愿采用。
  • 通过 go install 安装不包含 manpage 手册页。

标签

常见问题

d2 是什么?
一种文本化的图表脚本语言及命令行工具,可将 .d2 文件编译为 SVG、PNG、GIF、PDF 或 PPTX 图表。 D2 是一种图表脚本语言,你可以用纯文本描述节点、连线、容器和样式,再通过 D2 命令行工具渲染为 SVG、PNG、GIF、PDF 或 PPTX 文件。开启 watch 模式后,源文件每次修改都会自动重新渲染,并刷新浏览器中的预览。
d2 可以免费使用吗?用的什么许可证?
d2 以 MPL-2.0 许可证开源。用于商业产品前,请先确认许可证条款。
d2 还在维护吗?
活跃维护中。d2 最近一次提交是在 2026年10月11日。
d2 适合用来做什么?
将软件架构图与代码一同存放在版本库中,便于维护和审查。 以可比对、易评审的文本形式维护系统图和网络拓扑图。 在 Go 程序或文档构建流程中自动生成图表。 在基于 Markdown 的文档站点中绘制实体关系图或流程图。
d2 怎么安装和运行?
使用 README 中的安装脚本安装 D2 通过 Go 安装 D2: go install github.com/d2lang/d2@latest 创建输入文件并以实时重载方式渲染: echo 'x -> y -> z' > in.d2 && d2 --watch in.d2 out.svg
在哪里获取 d2?
源代码和安装说明在 GitHub 上:https://github.com/d2lang/d2

概要由 AI 根据项目 README 生成;GitHub 数据每日更新。

相关项目