API Server
【免费下载链接】d2D2 is a modern diagram scripting language that turns text to diagrams.项目地址: https://gitcode.com/GitHub_Trending/d2/d2
- port 8080 - rate limit 100/s ```}
formula: { label: |latex y = \alpha x + \beta}
snippet: { label: |code if err != nil { panic(err) }}
其渲染链路位于 [d2renderers/d2scenebuild/markdown.go](https://link.gitcode.com/i/ff74fa4b1d0ede1d9521c7b29cd3c058)、[d2renderers/d2scenebuild/latex.go](https://link.gitcode.com/i/d12605d37fc7ed714ef2bf8a56628e4d) 与 [d2renderers/d2scenebuild/code_shape.go](https://link.gitcode.com/i/56eee87a0bf44d722894dcb92e52ebfc),与独立形状共享同一套文本测量与排版管线。 ### 4.2 `shape: c4-person` 新增的 `shape: c4-person` 用于渲染 C4 模型规范中的人物形状(actor/person),与已有的 `shape: c4_component`、`shape: c4_container` 等构成完整的 C4 建模家族。实现位于 [lib/shape/shape_c4_person.go](https://link.gitcode.com/i/b90f1f46e64fb70adf973ab890db104d): ```d2 user: { shape: c4-person label: End User }4.3 图标与连接标签改进
- 连接线可以包含图标:
a -> b: { icon: https://... }现在对边同样生效(此前图标仅限对象); - 图标支持
border-radius:对含图标的形状设置border-radius可以正常裁剪圆角,不再失效; - 连接标签水平内边距:渲染端为连接线标签增加了水平 padding,避免文字贴边,相关实现可参见 d2renderers/d2scenebuild/labels.go。
4.4 图例(Diagram Legends)
v0.7.0 实现了图例功能,核心代码在 d2renderers/d2scenebuild/legend.go。图例允许你在图中显式声明一组"标签 → 含义"的说明条目,常用于颜色编码(如"绿色 = 正常,红色 = 故障")或形状语义说明。结合本节能力,图例配合 c4-person、markdown 标签等新特性,可以产出更接近正式架构文档的图表。
五、CLI 改进:validate命令、--omit-version与 watch 模式
5.1 新增validate命令
d2 validate只校验 D2 文本的语法与语义,不生成任何输出文件,适合在 CI 或编辑器保存钩子中做快速检查。命令分发逻辑位于 d2cli/main.go:
d2 validate input.d2 # 校验通过则静默退出(exit 0),失败则打印错误并返回非零码配合--watch还可以对文件做持续校验。底层复用的是与d2编译相同的解析器(d2parser)与 IR 编译器(d2ir),因此校验结果与最终渲染前诊断一致。
5.2--omit-version标志
默认情况下,D2 生成的 SVG/PNG 会嵌入 D2 版本信息(便于溯源)。新增的--omit-version让输出文件不再包含版本号,适合对产物做字节级快照对比或对版本号敏感的发布流程:
d2 --omit-version input.d2 output.svg标志定义在 d2cli/main.go(描述为 "omit D2 version from generated image")。
5.3 watch 模式忽略编辑器备份文件
d2 --watch现在会忽略形如foo.d2~的通用备份文件,以及 Helix、IntelliJ 等编辑器生成的临时备份,避免编辑器自动保存备份时触发无意义的重复渲染。备份文件识别逻辑位于 d2cli/watch.go,覆盖了~后缀、Helix 备份、IntelliJ 新旧备份等多种模式。
5.4 插件名大小写不敏感
指定布局插件时大小写不再敏感,d2 --layout ELK、d2 --layout elk、d2 --layout ElK均可正常工作,减少命令行输入的踩坑概率。
六、编译器与解析器改进
6.1link支持根路径
对象的链接目标现在可以设置为根路径,例如:
homepage: { link: /xyz }【免费下载链接】d2D2 is a modern diagram scripting language that turns text to diagrams.项目地址: https://gitcode.com/GitHub_Trending/d2/d2
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考