返回探索
d2

d2 - 文本转结构化图表工具

用文本快速生成结构化图表,提升系统设计效率

4
23,417 浏览
生产力
访问官网

详细介绍

d2 仓库中文介绍文档

d2 是一种将文本转换为图表的现代图表脚本语言,由 Terrastruct 提供,通过简洁的语法描述复杂系统结构,汇聚了图形生成、自动化布局和高度可定制化的功能。

要点:

  • 开头就要说清楚:这是什么工具、解决什么问题
  • 包含Stars数(如有)、维护者信息
  • 1-3句话,简洁有力

示例: OpenBB 是一款面向金融分析师、量化交易员与 AI 智能体的开源金融数据平台,以"一次连接、随处消费"为核心架构,统一接入股票、期权、加密等多资产数据。

一、核心信息速览

维度 详情
:--- :---
仓库地址 [d2](https://github.com/terrastruct/d2)
许可证 MIT License
核心定位 将文本描述转化为结构化图表,提升系统设计效率
主要语言 Go
适用人群 软件架构师、开发者、技术文档编写者、系统设计师
关键亮点 支持多种图表类型;易于学习和使用;支持自定义主题;支持导出多种格式

二、核心功能

功能模块 描述 典型场景
:--- :--- :---
图表脚本语言 通过文本定义图表结构和样式 设计软件架构图、流程图、网络拓扑图
自动布局引擎 使用 ELK 等算法自动排列节点 复杂系统设计时避免手动调整布局
主题系统 支持多种预设主题,也可自定义 快速匹配企业或项目视觉风格
字体支持 可自定义字体,适配不同场景 国际化项目中支持多语言显示
导出支持 支持 SVG、PNG、PDF 等格式 分享图表结果、嵌入到文档中
语言工具链 提供插件和 IDE 支持,增强开发体验 集成到开发流程中,提高生产效率
社区生态 有丰富的插件和教程资源 扩展功能,降低学习成本
实时预览 在 Playground 中实时查看图表效果 快速调试和优化图表设计

三、快速上手

1. 环境准备

支持主流操作系统(Windows、macOS、Linux),需安装 Go 1.18+ 和 Node.js 16+

2. 安装方式

# 通过 Go 安装
go install github.com/terrastruct/d2@latest

# 或通过 npm 安装
npm install @terrastruct/d2 -g

3. 基础配置

配置文件 d2-config 可设置布局引擎、主题等参数

4. 核心示例

network: {
  cell tower: {
    satellites: { shape: stored_data; style.multiple: true }
    transmitter
    satellites -> transmitter: send
  }

  data processor: {
    storage: { shape: cylinder; style.multiple: true }
  }

  cell tower.transmitter -> data processor.storage: phone logs
}

四、核心亮点

  1. 优势1:通过简单的文本语法即可生成复杂的图表,降低设计门槛。
  2. 优势2:支持多种布局算法,自动优化图表结构,节省时间。
  3. 优势3:提供丰富的主题和字体支持,满足多样化的设计需求。
  4. 优势4:拥有在线 Playground 和 IDE 工具,便于快速测试和开发。

五、适用场景

  1. 场景1:软件架构设计时,快速绘制系统结构图。
  2. 场景2:技术文档编写过程中,用文字直接生成图表。
  3. 场景3:团队协作中,通过统一的脚本语言共享设计思路。

六、优缺点

优势

  • 易于学习和使用,适合初学者和专业用户
  • 支持多种图表类型和导出格式
  • 强大的社区支持和扩展能力

不足

  • 对于复杂图表可能需要更精细的配置
  • 相比可视化工具,初期学习曲线略陡

七、与同类工具对比(可选)

工具 类型 核心差异
:--- :--- :---
d2 文本转图表工具 免费开源;支持自定义主题;易集成到开发流程
Mermaid 文本转图表工具 基于 Markdown,简单易用;但功能相对有限
Draw.io 图形化工具 交互式设计,适合非技术用户;但无法通过代码管理图表

八、总结

d2 是一款高效、灵活且易于使用的图表脚本语言,适合需要通过文本快速生成结构化图表的开发者和技术人员。其强大的自定义能力和良好的社区生态使其成为现代系统设计和文档编写的理想选择。但对于需要高度交互式设计的用户,可能需要结合其他工具一起使用。

相关工具