Diagram Maker›Overview
🗂️
Overview
What the Diagram Maker is and how it works
什么是图表制作器?
图制作器是一种基于 Datro DSL 构建的文本优先架构图绘制工具,这是一种结构化、经过验证且格式规范的语言,用于将软件系统描述为数据而不是图片。
您无需在画布上拖动框,而是编写一个 .dtro 文件。该工具链对其进行解析、验证架构规则、强制执行 WCAG 对比度,并将其渲染为 SVG、PNG 或交互式 JSON — 所有这些都来自单一事实来源。
打开图表制作器
在几分钟内编写、验证并渲染您的第一个图表。
为什么选择 Datro 而不是 Mermaid 或 draw.io?
- 类型化节点 — 23 种语义类型(
service、database、gateway、queue、...)自动生成一致、形状正确的图表。 - 键入边缘 — 21 种语义类型(
http、query、publish、grpc、...)对连接进行颜色编码和样式设置,无需手动覆盖。 - 架构约束 - 编写像
database !-> external这样的规则,验证器在解析时而不是审查时强制执行它们。 - 规范格式化程序 —
datro fmt将每个文件重写为确定性格式; diff 显示真实的变化,而不是重新格式化噪音。 - 导入和撰写 — 使用
import、命名空间别名和公开白名单将大型图表跨文件拆分。 - WCAG 2.1 辅助功能 — 对比度会根据您的主题调色板自动检查;当你低于 AA 时,
W602会触发。 - 机器可读的 JSON IR — 每个图表都会导出可由任何工具链、CI 系统或自定义渲染器使用的无损 JSON IR。
工具链如何工作
每个 .dtro 文件在成为图表之前都会经过四个阶段:
1·解析2·验证3·出口4·渲染
- 解析 — 递归下降词法分析器 + 解析器将源文本转换为
DatroIR对象。它从不抛出;所有问题均以Diagnostic[]形式返回,并具有精确的行/列位置。 - 验证 — 4 遍:结构完整性 → 语义约束检查 → 信息提示 → WCAG 2.1 对比和标签长度可访问性。
- 导出 — 将经过验证的 IR 转换为 DOT (Graphviz)、Cytoscape.js JSON 或无损 JSON IR。
- 渲染 — DOT 输出传递到 Graphviz 以生成 SVG 或 PNG 像素完美的输出。
一个完整的例子
此 .dtro 文件定义了一种支付服务,其中包含组、类型化节点、语义边缘、约束规则、布局提示和 WCAG 检查的颜色主题 — 所有这些都在一个文件中:
payment-service.dtro
#!DATRO 1.0
meta {
title: "Payment Service"
version: "2.0.0"
owner: "payments-team"
sla: "99.95%"
}
group data {
label: "Data Layer"
members: [payments_db, fraud_cache]
}
node api_gw { type: gateway label: "API Gateway" }
node payment_svc { type: service label: "Payment Service" attrs { tech: "nestjs" } }
node payments_db { type: database label: "Payments DB" attrs { tech: "postgres" } }
node fraud_cache { type: cache label: "Fraud Cache" attrs { tech: "redis" } }
node stripe { type: external label: "Stripe" }
edge api_gw -> payment_svc { kind: http label: "POST /charge" }
edge payment_svc -> payments_db { kind: query }
edge payment_svc -> fraud_cache { kind: read }
edge payment_svc -> stripe { kind: http label: "charge API" }
constraint {
id: "no-db-external"
rule: "database !-> external"
message: "Databases must not call external APIs"
severity: error
}
layout { direction: LR algo: dagre }
theme {
palette { gateway: "#FFD0D0" service: "#D0E8FF" database: "#FFE8C0" cache: "#C0FFE8" }
accessibility { min_contrast: AA }
}💡
立即尝试
将上面的示例粘贴到图表制作编辑器中,然后单击验证 - 您将看到带有行号的键入诊断,然后一键渲染为 SVG。
特点总结
23种节点类型21种边缘WCAG 2.1 AA/AAAJSON 架构草案-07SVG · PNG · DOT · Cytoscape导入/撰写
继续 Quick Start 编写您的第一个图表,或直接跳到 Language Reference 了解完整语法。