返回探索

详细介绍
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:通过简单的文本语法即可生成复杂的图表,降低设计门槛。
- 优势2:支持多种布局算法,自动优化图表结构,节省时间。
- 优势3:提供丰富的主题和字体支持,满足多样化的设计需求。
- 优势4:拥有在线 Playground 和 IDE 工具,便于快速测试和开发。
五、适用场景
- 场景1:软件架构设计时,快速绘制系统结构图。
- 场景2:技术文档编写过程中,用文字直接生成图表。
- 场景3:团队协作中,通过统一的脚本语言共享设计思路。
六、优缺点
优势
- 易于学习和使用,适合初学者和专业用户
- 支持多种图表类型和导出格式
- 强大的社区支持和扩展能力
不足
- 对于复杂图表可能需要更精细的配置
- 相比可视化工具,初期学习曲线略陡
七、与同类工具对比(可选)
| 工具 | 类型 | 核心差异 |
|---|---|---|
| :--- | :--- | :--- |
| d2 | 文本转图表工具 | 免费开源;支持自定义主题;易集成到开发流程 |
| Mermaid | 文本转图表工具 | 基于 Markdown,简单易用;但功能相对有限 |
| Draw.io | 图形化工具 | 交互式设计,适合非技术用户;但无法通过代码管理图表 |



