draw-io(图表绘制与编辑技能):让 AI 直接改 .drawio 源文件,把架构图从手工拖拽变成可编程
- 定位明确:这不是一个"生成图片"的工具,而是一个专注
.drawioXML 文件的编辑技能,能做图表创建、编辑、审阅、PNG 转换、布局调整与 AWS 图标使用。 - 改的是源文件:所有修改都作用在纯 XML 的
.drawio上,坐标、字体、箭头层级都可精确控制,产物可继续在 draw.io 里二次手工编辑。 - 有工程化配套:技能自带 PNG 转换脚本与
pre-commit钩子用法、AWS 图标搜索脚本,以及一份可逐条勾选的检查清单。 - 有明确的设计规范:从字体设置、坐标计算、箭头背层放置,到 30px 边距、20px 标签避让,都是写死在技能里的规则,输出稳定性比"随手画"高很多。
- 边界清晰:只编辑
.drawio,不直接编辑.drawio.png,也不适合需要自由绘制的插画场景。
1. 该技能叫什么?如何下载安装 AI 技能提升开发效率?
1.1 基本信息
| 项目 | 内容 |
|---|---|
| 中文名 | 图表绘制与编辑技能Skill |
| 英文名 | draw-io |
| 技能 ID | 12295 |
| 核心对象 | .drawio 文件(纯 XML 格式) |
| 官方定位 | draw.io 图表创建、编辑和审阅,用于 .drawio XML 编辑、PNG 转换、布局调整和 AWS 图标使用 |
1.2 它到底解决什么问题
用 draw.io 画图的人都会遇到同一个痛点:图形界面适合"从零画",但不适合"精确改"。想统一 20 个方框的字体大小、想把某个箭头往下挪 20 像素、想批量把背景色去掉换成透明、想给所有 AWS 服务换成最新版图标——这些操作在画布上要么重复劳动,要么很难对齐。
draw-io 技能换了个思路:把图表当成代码来改。.drawio 本身就是 XML,每个元素都是一个 mxCell,位置写在 mxGeometry 里。技能把"怎么改才不溢出、箭头放哪一层、标签留多少距离"这些隐含经验写成了规则,于是 AI 可以稳定地对源文件做精确编辑,再一键导出高清 PNG。
1.3 安装思路与步骤
技能详情中未提供公开的下载地址与安装命令,以下为通用思路,具体入口与命令请以官方说明为准:
- 确认运行环境:该技能面向支持 AI 技能(Skill)机制的客户端使用,技能内的脚本路径示例统一为
~/.claude/skills/draw-io/,说明它预期被安装到本地技能目录中。 - 安装技能本体:通过官方技能市场或官方仓库获取 draw-io 技能,安装后确认目录内包含
scripts/convert-drawio-to-png.sh、scripts/find_aws_icon.py、references/layout-guidelines.md、references/aws-icons.md等文件(这是判断"装完整了没"最直接的方法)。 - 准备本地转换依赖:技能的 PNG 转换内部调用
drawio -x -f png -s 2 -t -o output.drawio.png input.drawio,因此本机需要具备可执行的 draw.io 命令行工具。若你的项目使用mise与pre-commit,技能也给出了mise exec -- pre-commit run --all-files的批量转换方式。 - 验证是否生效:随便找一个
.drawio文件,执行bash ~/.claude/skills/draw-io/scripts/convert-drawio-to-png.sh assets/diagram1.drawio,若生成了对应的.drawio.png,说明脚本链路通了;再对 AI 说一句"把这张图里所有文本的背景色去掉",若它直接改 XML 而不是让你手动操作,说明技能已生效。
2. 该技能的主要功能和特点
- 纯 XML 级图表编辑:直接定位
mxCell的value属性搜索元素,修改mxGeometry中的x、y、width、height,实现"像素级"排版调整。 - 高清 PNG 转换:内置
-x -f png -s 2 -t参数组合,即导出模式、PNG 格式、2 倍缩放、透明背景,一次拿到可放进文档和幻灯片的高分辨率图。 - 批量与单文件两种转换方式:既能用
pre-commit run --all-files全量转换,也能用--files指定单个文件,还能直接跑技能自带脚本。 - 字体一致性控制:要求在
mxGraphModel标签上指定defaultFontFamily,同时在每个文本元素的style里显式写fontFamily,避免"有的框是默认字体、有的框是目标字体"的经典事故。 - AWS 官方图标体系:配套
find_aws_icon.py搜索脚本,支持ec2、lambda等关键词查询,并要求使用最新的mxgraph.aws4.*图标而非旧版。 - 可计算的居中与对齐:明确给出元素中心坐标公式
y + (height / 2),让"对齐多个元素"从手感活变成算术题。 - 箭头层级与避让规则:要求箭头放在背层(紧接标题之后),与标签保持至少 20px 距离,避免箭头穿透方框或图标。
- 文本元素的箭头连接方案:指出文本元素上
exitX/exitY不生效,改用显式的sourcePoint/targetPoint坐标,彻底解决"箭头连不上文字"的问题。 - 中日文换行宽度规则:每个字符预留 30–40px,10 个字符至少给 300–400px 宽,从源头避免意外换行。
- 渐近式披露的图表分层方法论:把复杂系统拆成上下文图、系统图、组件图、部署图、数据流图、序列图六类,按阶段展开。
- 可访问性与设计原则:要求足够的颜色对比度、颜色之外用图案区分、统一配色与线条粗细、标注图例、包含标题/描述/最后更新/作者/版本等元数据。
- 成体系的自检清单:从"未设置背景颜色"到"视觉验证 PNG 转换",一条条勾过去,比凭感觉验收可靠得多。
和普通绘图工具比强在哪? 普通工具解决"画出来",这个技能解决"改得准、改得快、改得一致"。尤其是同一个图要反复迭代十几次、或者一批图要统一风格时,差距非常明显。
3. 如何使用该技能?
步骤 1:明确输入是一个 .drawio 文件
技能的硬性规则是只编辑 .drawio,不要直接编辑 .drawio.png。PNG 是产物,不是源文件。如果你手上只有 PNG,需要先在 draw.io 里补出对应的 .drawio 源文件。
步骤 2:用自然语言提出修改需求
不需要自己算坐标,把意图讲清楚即可:
“在这张架构图右侧新增一个 Lambda 组件,用箭头指向已有的 ECR,标题写’事件处理’。”
AI 会去 XML 里找对应的 mxCell,按规则计算位置并插入新元素。
步骤 3:需要精修时,直接给出坐标级指令
当自动排版不理想,可以按技能给出的坐标调整流程介入:
- 在文本编辑器中打开
.drawio文件(它是纯 XML); - 通过
value属性搜索目标元素的mxCell; - 修改
mxGeometry里的x(距左)、y(距顶)、width、height; - 重新转换并验证。
对齐多个元素时用公式算中心:中心坐标 = y + (height / 2),让几个元素的中心值相等即可对齐。
步骤 4:转换并验证 PNG
三种方式任选:
# 方式一:转换全部 .drawio 文件
mise exec -- pre-commit run --all-files
# 方式二:只转换指定文件
mise exec -- pre-commit run convert-drawio-to-png --files assets/my-diagram.drawio
# 方式三:直接运行技能脚本
bash ~/.claude/skills/draw-io/scripts/convert-drawio-to-png.sh assets/diagram1.drawio
内部实际执行的命令与参数含义:
drawio -x -f png -s 2 -t -o output.drawio.png input.drawio
| 选项 | 描述 |
|---|---|
-x |
导出模式 |
-f png |
PNG 格式输出 |
-s 2 |
2 倍缩放(高分辨率) |
-t |
透明背景 |
-o |
输出文件路径 |
步骤 5:字体与说明文字的写法示例
用于幻灯片时,先在 mxGraphModel 上设默认字体:
<mxGraphModel defaultFontFamily="Noto Sans JP" ...>
再在每个文本元素的样式中显式声明:
style="text;html=1;fontSize=27;fontFamily=Noto Sans JP;"
步骤 6:查找 AWS 图标
python ~/.claude/skills/draw-io/scripts/find_aws_icon.py ec2
python ~/.claude/skills/draw-io/scripts/find_aws_icon.py lambda
步骤 7:按检查清单收尾
交付前逐条确认:未设置背景颜色、字体足够大、箭头在背层、箭头不压标签(在 PNG 里看)、箭头起终点离标签至少 20px、箭头不穿透框和图标、内部元素不溢出背景框架、框架与内部元素边距至少 30px、AWS 服务名是官方名称、图标为 mxgraph.aws4.* 最新版本、无多余装饰元素、已完成 PNG 视觉验证。
输出说明
最终你会同时得到两份东西:可继续编辑的 .drawio 源文件,以及可直接插入文档的透明背景高清 .drawio.png。如果用在 reveal.js 幻灯片里,记得在 YAML 头加 auto-stretch: false,以保证移动端显示正常。
4. 同类型竞品对比分析
| 方案名称 | 定位 | 核心功能 | 安装/使用门槛 | 适用场景 | 优势与不足 |
|---|---|---|---|---|---|
| draw-io 技能(本技能) | AI 直接编辑 .drawio 源文件的图表技能 |
XML 编辑、PNG 转换、布局坐标调整、AWS 图标、设计规范与检查清单 | 需安装技能本体、本机具备 draw.io 命令行工具;以自然语言下达指令即可 | 需要反复迭代的架构图、云上部署图、要进文档和幻灯片的正式图表 | 优势:改得准、风格统一、和现有 .drawio 资产无缝衔接;不足:依赖本地转换环境,不适合自由插画 |
| draw.io 桌面版/网页版(手工绘图) | 通用可视化绘图工具 | 拖拽绘制、模板库、导出多种格式 | 零门槛,打开浏览器即可用 | 一次性草图、临时沟通图 | 优势:所见即所得、上手最快;不足:批量统一风格、像素级对齐全靠手工,迭代成本高 |
| Mermaid | 代码化文本绘图 | 用文本描述生成流程图、时序图、类图 | 需掌握语法,或在支持 Mermaid 的平台上使用 | 文档内嵌流程图、与代码同仓库维护 | 优势:纯文本、易做版本管理;不足:布局自动生成不可精调,图标与视觉表现力有限,无法复用 .drawio 资产 |
| 其他云绘图 SaaS | 在线协作白板/绘图平台 | 拖拽绘图、多人实时协作、模板生态 | 需注册账号,多数高级功能需订阅(以官方说明为准) | 团队头脑风暴、跨部门共创 | 优势:协作体验好;不足:图表源文件可控性弱,难以纳入代码仓库与自动化流程 |
| PlantUML | 代码化 UML 绘图 | 用文本描述生成 UML 系列图 | 需掌握语法并部署渲染环境 | 标准 UML 建模、技术文档 | 优势:语义规范、适合工程团队;不足:样式定制受限,非 UML 类架构图表现一般 |
一句话选型建议:图要反复改、要统一风格、要和已有 .drawio 资产兼容,选本技能;只想快速出一张草图,用绘图工具本身更省事;图要和代码同生命周期演进,考虑 Mermaid 类方案。
5. 该技能的典型应用场景与实际体验情况
场景一:云架构图的持续迭代(解决方案架构师)
痛点:一张 AWS 架构图从初稿到定稿要改十几轮,每次加一个服务,就要重新调整周边所有元素的位置,箭头还会穿过方框。
使用方式:把架构图的 .drawio 交给技能,用自然语言描述新增组件与连接关系,让它按规则计算坐标、把箭头放背层、保证 30px 框架边距,然后转 PNG 自查。
实际体验:上手难度低,不需要懂 XML;效果主要体现在"改完不用返工",因为箭头避让和边距规则是强制执行的。注意事项:一定要看转换出来的 PNG,坐标算对了不等于视觉上没压线。
场景二:技术文档与幻灯片的配图生产(技术写作者 / 布道师)
痛点:同一批图表要进 PDF 文档和 reveal.js 幻灯片,字体不一致、图太小看不清、背景色和深色主题打架。
使用方式:统一设置 defaultFontFamily 与每个文本元素的 fontFamily,字号取标准的 1.5 倍(约 18px),去掉 background="#ffffff" 使用透明背景,幻灯片场景加 auto-stretch: false。
实际体验:透明背景这一条改动收益最大,一套图能同时适配浅色和深色主题,不用维护两份;放大字号后 PDF 里清楚很多。注意事项:日文/中文文本必须按每字符 30–40px 预留宽度,否则换行会出现在意想不到的位置。
场景三:批量图表风格治理(团队 Tech Lead)
痛点:仓库里几十张历史图表,配色五花八门,AWS 图标还是旧版,没人愿意动。
使用方式:用 mise exec -- pre-commit run --all-files 批量转换,配合 find_aws_icon.py 把旧图标替换成 mxgraph.aws4.*,按检查清单逐项治理。
实际体验:把"审美问题"变成了"清单问题",可验收、可分工。注意事项:技能明确要求移除与上下文无关的装饰性图标(例如已有 ECR 时单独放一个 Docker 图标就是冗余),治理时会删掉一些"看起来挺好看"的元素,需要提前和团队对齐。
场景四:复杂系统的分层表达(后端工程师)
痛点:一上来就画组件级细节,读者看不懂;想讲清楚又不知道从哪一层切。
使用方式:按技能给出的渐进式披露思路拆成六类图——上下文图讲外部视角、系统图讲主要组件、组件图讲技术细节、部署图讲基础设施、数据流图讲数据转换、序列图讲时序交互。
实际体验:这套分层本身就是方法论,比单纯"帮你画图"更有价值。注意事项:每张图都要带标题、描述、最后更新、作者和版本等元数据,否则半年后没人知道这张图对应哪个版本。
6. 该技能能为用户带来的价值
- 效率提升:把"改图"从画布上的拖拽操作,变成一句自然语言指令 + 一次脚本转换。批量场景(全仓库图表转换、统一换图标)的收益尤其明显,从逐张手工处理变成一条命令。
- 门槛降低:使用者不需要精通 draw.io 的样式面板,也不需要理解
mxCell结构,只要说清楚"新增什么、连到哪里"。而技能内置的坐标公式与边距规则,替使用者兜住了大部分排版坑。 - 质量下限被抬高:箭头背层、20px 标签避让、30px 框架边距、1.5 倍字号、透明背景、最新 AWS 图标——这些原本靠个人经验维系的规范,现在变成了强制项和检查清单,团队成员产出的图表风格天然趋同。
- 资产可维护:产出仍是标准
.drawio源文件,可以进版本库、可以在 draw.io 里继续手工微调,不会被某个工具锁死。 - 长期价值:图表从"一次性截图"变成"可持续更新的工程资产"。当架构变化时,改的是源文件而不是重画一张图,知识沉淀才真正留得下来。
7. 常见问题 FAQ
Q1:这个技能怎么安装?需要准备什么?
通过官方技能渠道安装到本地技能目录(示例路径为 ~/.claude/skills/draw-io/),具体入口与命令以官方说明为准。安装后请额外确认两件事:目录内脚本与 references 文件齐全;本机具备 draw.io 命令行工具,否则 PNG 转换会失败。
Q2:收费吗?
技能详情中未涉及定价信息,请以官方说明为准。需要留意的是,PNG 转换依赖本地的 draw.io 命令行工具,这部分环境的准备成本需要自行评估。
Q3:适合谁用?不适合谁?
适合需要反复迭代架构图、维护成批图表、要求风格统一的开发者、架构师、技术写作者和 Tech Lead。不适合需要自由插画、手绘风格草图或纯图形创意设计的场景——它改的是结构化 XML,不是画布。
Q4:为什么不能直接改 .drawio.png?
因为 PNG 是导出产物,不是源文件,改它等于改一张位图,无法再回到可编辑状态。技能的规则很明确:只编辑 .drawio,.drawio.png 由预提交钩子自动生成,幻灯片里使用的也是这份自动生成的文件。
Q5:和 Mermaid、PlantUML 这类文本绘图怎么选?
如果你已有大量 .drawio 资产、需要精确控制布局与图标(尤其是 AWS 图标),选本技能;如果图要和代码同仓库演进、更看重"文本即源码"的极简维护方式,Mermaid 或 PlantUML 更合适。两者也可以并存:文档内嵌流程图用 Mermaid,正式架构图用 draw.io 技能产出。