用途
本技能用于生成 draw.io 图,输出为原生 .drawio 文件,并可导出为带有内嵌 XML 的 PNG/SVG/PDF,方便嵌入 Word 等文档。
主要能力
- 按请求生成 mxGraphModel 格式的 draw.io XML。
- 使用创建/编辑文件工具将 XML 写入 .drawio 文件。
- 通过随附的导出脚本将图导出为 PNG 等格式。
- 导出脚本 drawio-to-png.mjs 为 Node.js 脚本,提供两种渲染后端:draw.io CLI(像素精准、速度最快,若安装了 draw.io 桌面版则自动使用)以及无头浏览器中的官方 draw.io 查看器(像素精准,需要 Chromium/Edge,作为 CLI 不可用时的回退方案)。
使用方式
依赖安装(一次性,从 scripts 文件夹执行): cd skills/drawio/scripts && npm install
导出单个图: node skills/drawio/scripts/drawio-to-png.mjs <input.drawio> [output.png]
导出目录中所有 .drawio 文件: node skills/drawio/scripts/drawio-to-png.mjs --dir <directory>
强制指定渲染器: node skills/drawio/scripts/drawio-to-png.mjs --renderer=cli|viewer|auto <input.drawio>
技能文件夹内容
- SKILL.md:说明文件。
- scripts/drawio-to-png.mjs:Node.js 导出脚本(CLI + 浏览器回退)。
- scripts/package.json:依赖(puppeteer-core)。
支持的导出格式
- png:内嵌 XML,随处可查看,可在 draw.io 中编辑。
- svg:内嵌 XML,可缩放,可在 draw.io 中编辑。
- pdf:内嵌 XML,可打印,可在 draw.io 中编辑。
XML 样式约定
为保持图的一致与专业,使用以下样式:
- 主要服务(高亮):rounded=1;whiteSpace=wrap;html=1;fillColor=#dae8fc;strokeColor=#6c8ebf;strokeWidth=2;arcSize=12;shadow=1;
- 外部系统:rounded=1;whiteSpace=wrap;html=1;fillColor=#f5f5f5;strokeColor=#666666;
- 成功/处理阶段:rounded=1;whiteSpace=wrap;html=1;fillColor=#d5e8d4;strokeColor=#82b366;
- 警告/质量门:rounded=1;whiteSpace=wrap;html=1;fillColor=#fff2cc;strokeColor=#d6b656;
- 错误/失败路径:rounded=1;whiteSpace=wrap;html=1;fillColor=#f8cecc;strokeColor=#b85450;
- 数据存储(圆柱):shape=cylinder3;whiteSpace=wrap;html=1;fillColor=#fff2cc;strokeColor=#d6b656;
- 箭头:edgeStyle=orthogonalEdgeStyle;rounded=1;strokeColor=#6c8ebf;strokeWidth=2;
定位 draw.io CLI
先尝试 drawio(若在 PATH 中),再回退:
- Windows:"C:\Program Files\draw.io\draw.io.exe"
- macOS:/Applications/draw.io.app/Contents/MacOS/draw.io
- Linux:drawio(通过 snap/apt/flatpak)
CLI 导出命令
drawio -x -f png -e -b 10 -o <output.png> <input.drawio>
参数说明:-x(导出)、-f(格式)、-e(内嵌图 XML)、-b(边框)、-o(输出路径)。
适用场景
需要生成 draw.io 图并嵌入 Word 文档、或需要以 PNG/SVG/PDF 形式输出且保留可编辑 XML 的场景。
限制
资料未提供收费、价格与具体平台兼容性等额外信息,暂未提供更多限制说明。