Project Icon

d2

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

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

目录

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

D2 渲染示例

在线试用中打开

更多示例,请参阅 ./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的项目列表中。

项目侧边栏1项目侧边栏2
推荐项目
Project Cover

豆包MarsCode

豆包 MarsCode 是一款革命性的编程助手,通过AI技术提供代码补全、单测生成、代码解释和智能问答等功能,支持100+编程语言,与主流编辑器无缝集成,显著提升开发效率和代码质量。

Project Cover

AI写歌

Suno AI是一个革命性的AI音乐创作平台,能在短短30秒内帮助用户创作出一首完整的歌曲。无论是寻找创作灵感还是需要快速制作音乐,Suno AI都是音乐爱好者和专业人士的理想选择。

Project Cover

有言AI

有言平台提供一站式AIGC视频创作解决方案,通过智能技术简化视频制作流程。无论是企业宣传还是个人分享,有言都能帮助用户快速、轻松地制作出专业级别的视频内容。

Project Cover

Kimi

Kimi AI助手提供多语言对话支持,能够阅读和理解用户上传的文件内容,解析网页信息,并结合搜索结果为用户提供详尽的答案。无论是日常咨询还是专业问题,Kimi都能以友好、专业的方式提供帮助。

Project Cover

阿里绘蛙

绘蛙是阿里巴巴集团推出的革命性AI电商营销平台。利用尖端人工智能技术,为商家提供一键生成商品图和营销文案的服务,显著提升内容创作效率和营销效果。适用于淘宝、天猫等电商平台,让商品第一时间被种草。

Project Cover

吐司

探索Tensor.Art平台的独特AI模型,免费访问各种图像生成与AI训练工具,从Stable Diffusion等基础模型开始,轻松实现创新图像生成。体验前沿的AI技术,推动个人和企业的创新发展。

Project Cover

SubCat字幕猫

SubCat字幕猫APP是一款创新的视频播放器,它将改变您观看视频的方式!SubCat结合了先进的人工智能技术,为您提供即时视频字幕翻译,无论是本地视频还是网络流媒体,让您轻松享受各种语言的内容。

Project Cover

美间AI

美间AI创意设计平台,利用前沿AI技术,为设计师和营销人员提供一站式设计解决方案。从智能海报到3D效果图,再到文案生成,美间让创意设计更简单、更高效。

Project Cover

稿定AI

稿定设计 是一个多功能的在线设计和创意平台,提供广泛的设计工具和资源,以满足不同用户的需求。从专业的图形设计师到普通用户,无论是进行图片处理、智能抠图、H5页面制作还是视频剪辑,稿定设计都能提供简单、高效的解决方案。该平台以其用户友好的界面和强大的功能集合,帮助用户轻松实现创意设计。

投诉举报邮箱: service@vectorlightyear.com
@2024 懂AI·鲁ICP备2024100362号-6·鲁公网安备37021002001498号