将自然语言描述转为 Excalidraw 可视化图表(.excalidraw 文件),保存到当前工作目录或用户指定路径。
支持图表类型: 流程图 · 架构图 · 思维导图 · 关系图 · ER图 · 时序图 · 泳道图 · 类图 · 数据流图
diagram-{YYYYMMDD-HHmm}.excalidraw)参考 references/diagram-templates.md 对应模板,按以下规则布局:
严格按照 元素规范 构建 elements 数组,生成标准 .excalidraw 文件结构:
json
{
"type": "excalidraw",
"version": 2,
"source": "openclaw-skill",
"elements": [...],
"appState": {
"viewBackgroundColor": "#ffffff",
"gridSize": null
},
"files": {}
}
每个带文字的形状(rectangle/ellipse/diamond)除了形状自身的 text 属性外, 必须同时生成一个独立的 text 元素叠加在形状上方。
原因:Excalidraw 在 headless 浏览器导出 PNG 时,形状内嵌文字不渲染, 但独立 text 元素可以正常显示。双重文字确保在线编辑和导出都能看到文字。
text 元素坐标计算:
示例:
json
// 形状元素
{
"id": "rect001",
"type": "rectangle",
"x": 100, "y": 100,
"width": 160, "height": 60,
"label": { "text": "用户登录" }
}
// 叠加的独立 text 元素(必须同时生成)
{
"id": "txt001",
"type": "text",
"x": 110,
"y": 119,
"width": 140,
"text": "用户登录",
"fontSize": 16,
"fontFamily": 5,
"textAlign": "center",
"containerId": null
}
bash
# 写入文件(使用 write 工具)
# 路径:<用户指定目录或当前工作目录>/<filename>.excalidraw
生成 .excalidraw 文件后,自动导出 PNG:
bash
python3 ~/.openclaw/workspace/skills/excalidraw-diagram/scripts/export-png.py <input.excalidraw> <output.png>
playwright( pip install playwright && playwright install chromium)如果导出失败,告知用户手动在 excalidraw.com 打开文件导出。
告知用户:
用途颜色代码主要节点 Primary#a5d8ff次要节点 Secondary#b2f2bb重要/高亮 Important#ffd43b警告/错误 Alert#ffc9c9背景透明"transparent"
fontFamily: 5(Excalifont,Excalidraw 官方手绘字体)fontSize: 16fontSize: 20fontSize: 24形状type典型用途矩形rectangle流程步骤、模块、类椭圆ellipse开始/结束节点、实体菱形diamond判断条件、决策箭头arrow连接、流向、关系文本text标签、说明
详细属性见 元素规范。
图表类型主要形状元素数量建议方向流程图rectangle + diamond + arrow3–10 步上→下架构图rectangle + arrow5–15 节点分层思维导图ellipse + rectangle + arrow中心+4–6 分支辐射关系图ellipse/rectangle + arrow3–8 实体自由ER 图rectangle + text + arrow3–8 表网格时序图rectangle + text + arrow3–6 参与者左→右+时间轴泳道图rectangle(lane) + arrow2–4 泳道左→右类图rectangle + text + arrow3–8 类层次数据流图ellipse + rectangle + arrow5–12 节点自由
每个元素需要唯一 ID,使用随机字符串(8位字母数字):
text
"id": "abc12345"
箭头的 startBinding.elementId 和 endBinding.elementId 必须指向对应元素的 id。
startBinding 和 endBinding,否则连线会断开points: [[0,0],[dx,dy]]见 references/examples.md — 包含各类图表的完整 prompt + 输出示例。