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的项目列表中。

编辑推荐精选

Vora

Vora

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

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

Refly.AI

Refly.AI

最适合小白的AI自动化工作流平台

无需编码,轻松生成可复用、可变现的AI自动化工作流

酷表ChatExcel

酷表ChatExcel

大模型驱动的Excel数据处理工具

基于大模型交互的表格处理系统,允许用户通过对话方式完成数据整理和可视化分析。系统采用机器学习算法解析用户指令,自动执行排序、公式计算和数据透视等操作,支持多种文件格式导入导出。数据处理响应速度保持在0.8秒以内,支持超过100万行数据的即时分析。

AI工具酷表ChatExcelAI智能客服AI营销产品使用教程
TRAE编程

TRAE编程

AI辅助编程,代码自动修复

Trae是一种自适应的集成开发环境(IDE),通过自动化和多元协作改变开发流程。利用Trae,团队能够更快速、精确地编写和部署代码,从而提高编程效率和项目交付速度。Trae具备上下文感知和代码自动完成功能,是提升开发效率的理想工具。

AI工具TraeAI IDE协作生产力转型热门
AIWritePaper论文写作

AIWritePaper论文写作

AI论文写作指导平台

AIWritePaper论文写作是一站式AI论文写作辅助工具,简化了选题、文献检索至论文撰写的整个过程。通过简单设定,平台可快速生成高质量论文大纲和全文,配合图表、参考文献等一应俱全,同时提供开题报告和答辩PPT等增值服务,保障数据安全,有效提升写作效率和论文质量。

AI辅助写作AI工具AI论文工具论文写作智能生成大纲数据安全AI助手热门
博思AIPPT

博思AIPPT

AI一键生成PPT,就用博思AIPPT!

博思AIPPT,新一代的AI生成PPT平台,支持智能生成PPT、AI美化PPT、文本&链接生成PPT、导入Word/PDF/Markdown文档生成PPT等,内置海量精美PPT模板,涵盖商务、教育、科技等不同风格,同时针对每个页面提供多种版式,一键自适应切换,完美适配各种办公场景。

AI办公办公工具AI工具博思AIPPTAI生成PPT智能排版海量精品模板AI创作热门
潮际好麦

潮际好麦

AI赋能电商视觉革命,一站式智能商拍平台

潮际好麦深耕服装行业,是国内AI试衣效果最好的软件。使用先进AIGC能力为电商卖家批量提供优质的、低成本的商拍图。合作品牌有Shein、Lazada、安踏、百丽等65个国内外头部品牌,以及国内10万+淘宝、天猫、京东等主流平台的品牌商家,为卖家节省将近85%的出图成本,提升约3倍出图效率,让品牌能够快速上架。

iTerms

iTerms

企业专属的AI法律顾问

iTerms是法大大集团旗下法律子品牌,基于最先进的大语言模型(LLM)、专业的法律知识库和强大的智能体架构,帮助企业扫清合规障碍,筑牢风控防线,成为您企业专属的AI法律顾问。

SimilarWeb流量提升

SimilarWeb流量提升

稳定高效的流量提升解决方案,助力品牌曝光

稳定高效的流量提升解决方案,助力品牌曝光

Sora2视频免费生成

Sora2视频免费生成

最新版Sora2模型免费使用,一键生成无水印视频

最新版Sora2模型免费使用,一键生成无水印视频

下拉加载更多