一个小型同步渲染器,把 Mermaid 图表文本渲染为 SVG,无运行时依赖。
- 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
使用 README 中的安装脚本安装 D2
- 2
通过 Go 安装 D2
go install github.com/d2lang/d2@latest - 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 数据每日更新。
相关项目
270280TypeScriptOther更新于 前天
一个智能体技能,可将图表生成为单个自包含的 HTML + SVG 文件,支持 45 种图表类型和品牌配色匹配。
5.9万3788HTMLMIT更新于 前天
基于 PlantUML 的 C4 模型宏库,用纯文本代码绘制软件架构图。
74411168PlantUMLMIT更新于 9天前
一款将纯文本大纲快速生成流程图和示意图的网页应用,基于 React 和 cytoscape.js 构建。
3399245TypeScriptMIT更新于 6天前
为 Claude 等编程智能体提供的技能,可将简短 JSON 描述转换为可交互、带动画的图表,并导出多种格式。
68638JavaScriptMIT更新于 5天前