d2

d2

简洁易用的文本到图表转换脚本语言

D2是一种图表脚本语言,可将文本转换为可视化图表。支持多种主题、字体和导出格式,既可作为CLI工具使用,也可集成到Go程序中。D2提供自动格式化、语法高亮等语言工具,支持多种布局引擎和插件扩展。该项目拥有活跃的社区,适用于多种场景。

D2图表绘制文本转图脚本语言可视化Github开源项目
<div align="center"> <img src="https://yellow-cdn.veclightyear.com/2b54e442/10e3c525-0844-40a3-9569-b4fa04e4fc73.png" alt="D2" /> <h2> 一种现代的图表脚本语言,可将文本转换为图表。 </h2>

文档 | 速查表 | 比较 | 在线试用

ci daily release discord twitter license

<a href="https://play.d2lang.com"> <img src="https://yellow-cdn.veclightyear.com/2b54e442/36f2581a-f6a4-43ba-8685-5c05387e5266.png" alt="D2 在线试用按钮" width="200" /> </a>

https://user-images.githubusercontent.com/3120367/206125010-bd1fea8e-248a-43e7-8f85-0bbfca0c6e2a.mp4

</div>

目录

<!-- toc -->

D2 长什么样?

vars: { d2-config: { layout-engine: elk # 终端主题代码 theme-id: 300 } } network: { cell tower: { satellites: { shape: stored_data style.multiple: true } transmitter satellites -> transmitter: send satellites -> transmitter: send satellites -> transmitter: send } online portal: { ui: {shape: hexagon} } data processor: { storage: { shape: cylinder style.multiple: true } } cell tower.transmitter -> data processor.storage: phone logs } user: { shape: person width: 130 } user -> network.cell tower: make call user -> network.online portal.ui: access { style.stroke-dash: 3 } api server -> network.online portal.ui: display api server -> logs: persist logs: {shape: page; style.multiple: true} network.data processor -> api server
<p align="center"> <img width="400px" src="https://yellow-cdn.veclightyear.com/2b54e442/3b4b8bec-a222-4169-97ea-5134f945ba18.svg" alt="D2 渲染示例" /> </p>

在线试用中打开

更多示例,请参阅 ./docs/examples

快速开始

使用 D2 最方便的方式是将其作为 CLI 可执行文件运行,从 .d2 文件生成 SVG。

# 首先,安装 D2 curl -fsSL https://d2lang.com/install.sh | sh -s -- echo 'x -> y -> z' > in.d2 d2 --watch in.d2 out.svg

浏览器窗口将打开 out.svg,并在 in.d2 发生更改时实时重新加载。

安装

最简单的安装方式是使用我们的安装脚本:

curl -fsSL https://d2lang.com/install.sh | sh -s --

您可以使用 --dry-run 运行安装脚本,以查看将用于安装的命令而不执行它们。

如果您已安装 Go,也可以从源代码安装,但不会获得手册页:

go install oss.terrastruct.com/d2@latest

您还可以从源代码安装发布版本,其中包括手册页。 请参阅 ./docs/INSTALL.md#source-release

要使用安装脚本卸载:

curl -fsSL https://d2lang.com/install.sh | sh -s -- --uninstall

有关详细的安装文档,请参阅 ./docs/INSTALL.md。 我们演示了每个操作系统的替代方法和示例。

此外,安装脚本的功能有详细描述,以消除任何使用上的顾虑。为了提高安全性,我们建议直接使用操作系统的包管理器,但安装脚本绝不是不安全的。

作为库使用 D2

除了可作为可运行的 CLI 工具外,D2 还可以用于在 Go 程序中生成图表。

有关示例,请参阅 ./docs/examples/lib。这篇博客文章也演示了一个完整的、可运行的真实用例示例,展示了如何将 D2 作为库使用。

主题

D2 包含各种官方主题,可以直接为您的图表添加漂亮的样式。请查看 ./d2themes 以浏览可用的主题,并制作或贡献您自己的创作。

字体

D2 默认使用 "Source Sans Pro" 作为渲染字体。如果您想使用其他字体,请参阅 ./d2renderers/d2fonts

导出文件类型

D2 目前支持 SVG、PNG 和 PDF 导出。更多格式即将推出。

语言工具

D2 在设计时就考虑到了语言工具。D2 的解析器可以从有错误的程序中解析多个错误,具有自动格式化功能、语法高亮,我们还计划开发 LSP 等更多功能。良好的语言工具对于创建和维护大型图表是必要的。

VSCode 和 Vim 的扩展可以在相关部分找到。

插件

D2 设计为可扩展和可组合的。插件系统允许您更换布局引擎并自定义渲染流程。插件可以与构建捆绑在一起,也可以作为独立的二进制文件单独安装。

布局引擎

  • dagre(默认,捆绑):一个快速的有向图布局引擎,可生成分层/层次布局。基于 Graphviz 的 DOT 算法。
  • ELK(捆绑):一个特别适合具有固有方向和端口的节点链接图的有向图布局引擎。
  • TALA(二进制):专为软件架构图设计的新型布局引擎。需要单独安装,访问 Github 页面了解更多。

D2 计划集成各种布局引擎,例如 dot,以及单一用途的布局类型,如序列图。您可以选择任何您喜欢的布局引擎,以最适合您正在制作的图表。

对比

有关与其他流行的文本到图表工具的比较,请参阅 https://text-to-diagram.com

贡献

欢迎贡献!请参阅 ./docs/CONTRIBUTING.md

许可证

根据 Mozilla Public License 2.0 开源。请参阅 ./LICENSE.txt

相关

我们不断开发新的插件、集成和扩展。欢迎在任何官方或社区插件中做出贡献。如果您在工作流程中有想要使用 D2 的地方,请随时开启讨论。我们的带宽有限,通常选择需求最高的项目进行开发。如果您自己用 D2 做了一些很酷的东西,请告诉我们,我们很乐意在这里包含它!

官方插件

社区插件

其他

常见问题

  • D2是否收集遥测数据?
    • 不,D2在安装后不使用互联网连接,除了定期从Github检查版本更新。
  • D2是否需要浏览器才能运行?
    • 不,D2可以完全在服务器端运行。
  • 下一个版本会有什么新内容?
  • 我有问题或需要帮助。
    • 获取帮助的最佳方式是在D2 Discord上提问。
  • 我有功能请求、提议或错误报告。
    • 请在Github上开启一个Issue。
  • 我有私人咨询。

使用D2进行文档编写的著名开源项目

如果您有或看到包含.d2文件的开源项目,请提交PR将其添加到这个精选的使用D2的项目列表中。

编辑推荐精选

音述AI

音述AI

全球首个AI音乐社区

音述AI是全球首个AI音乐社区,致力让每个人都能用音乐表达自我。音述AI提供零门槛AI创作工具,独创GETI法则帮助用户精准定义音乐风格,AI润色功能支持自动优化作品质感。音述AI支持交流讨论、二次创作与价值变现。针对中文用户的语言习惯与文化背景进行专门优化,支持国风融合、C-pop等本土音乐标签,让技术更好地承载人文表达。

QoderWork

QoderWork

阿里Qoder团队推出的桌面端AI智能体

QoderWork 是阿里推出的本地优先桌面 AI 智能体,适配 macOS14+/Windows10+,以自然语言交互实现文件管理、数据分析、AI 视觉生成、浏览器自动化等办公任务,自主拆解执行复杂工作流,数据本地运行零上传,技能市场可无限扩展,是高效的 Agentic 生产力办公助手。

lynote.ai

lynote.ai

一站式搞定所有学习需求

不再被海量信息淹没,开始真正理解知识。Lynote 可摘要 YouTube 视频、PDF、文章等内容。即时创建笔记,检测 AI 内容并下载资料,将您的学习效率提升 10 倍。

AniShort

AniShort

为AI短剧协作而生

专为AI短剧协作而生的AniShort正式发布,深度重构AI短剧全流程生产模式,整合创意策划、制作执行、实时协作、在线审片、资产复用等全链路功能,独创无限画布、双轨并行工业化工作流与Ani智能体助手,集成多款主流AI大模型,破解素材零散、版本混乱、沟通低效等行业痛点,助力3人团队效率提升800%,打造标准化、可追溯的AI短剧量产体系,是AI短剧团队协同创作、提升制作效率的核心工具。

seedancetwo2.0

seedancetwo2.0

能听懂你表达的视频模型

Seedance two是基于seedance2.0的中国大模型,支持图像、视频、音频、文本四种模态输入,表达方式更丰富,生成也更可控。

nano-banana纳米香蕉中文站

nano-banana纳米香蕉中文站

国内直接访问,限时3折

输入简单文字,生成想要的图片,纳米香蕉中文站基于 Google 模型的 AI 图片生成网站,支持文字生图、图生图。官网价格限时3折活动

扣子-AI办公

扣子-AI办公

职场AI,就用扣子

AI办公助手,复杂任务高效处理。办公效率低?扣子空间AI助手支持播客生成、PPT制作、网页开发及报告写作,覆盖科研、商业、舆情等领域的专家Agent 7x24小时响应,生活工作无缝切换,提升50%效率!

堆友

堆友

多风格AI绘画神器

堆友平台由阿里巴巴设计团队创建,作为一款AI驱动的设计工具,专为设计师提供一站式增长服务。功能覆盖海量3D素材、AI绘画、实时渲染以及专业抠图,显著提升设计品质和效率。平台不仅提供工具,还是一个促进创意交流和个人发展的空间,界面友好,适合所有级别的设计师和创意工作者。

图像生成AI工具AI反应堆AI工具箱AI绘画GOAI艺术字堆友相机AI图像热门
码上飞

码上飞

零代码AI应用开发平台

零代码AI应用开发平台,用户只需一句话简单描述需求,AI能自动生成小程序、APP或H5网页应用,无需编写代码。

Vora

Vora

免费创建高清无水印Sora视频

Vora是一个免费创建高清无水印Sora视频的AI工具

下拉加载更多