SuperAPI AI 工具集

draw-io

设计与创作

查看项目

更新于 10-15 15:22

技能介绍

draw.io 图表技能用于创建、编辑和审查 draw.io 图表,主要面向 .drawio XML 文件的编辑、PNG 转换、布局调整以及 AWS 图标使用。

一、基本规则 只编辑 .drawio 文件,不要直接编辑 .drawio.png 文件。在幻灯片中使用由 pre-commit 钩子自动生成的 .drawio.png。

二、字体设置 对于 Quarto 幻灯片中使用的图表,在 mxGraphModel 标签中指定 defaultFontFamily,例如:<mxGraphModel defaultFontFamily="Noto Sans JP" ...>。同时,在每个文本元素的 style 属性中显式指定 fontFamily,例如:style="text;html=1;fontSize=27;fontFamily=Noto Sans JP;"。

三、转换命令 转换脚本位于 scripts/convert-drawio-to-png.sh。 转换所有 .drawio 文件:mise exec -- pre-commit run --all-files 转换特定 .drawio 文件: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 输出文件路径。

四、布局调整 坐标调整步骤:在文本编辑器中打开 .drawio 文件(纯 XML 格式);找到要调整元素的 mxCell(通过 value 属性搜索文本);调整 mxGeometry 标签中的坐标(x 距左位置,y 距顶位置,width 宽度,height 高度);运行转换并验证。 坐标计算:元素中心坐标 = y + (height / 2)。要对齐多个元素,计算并匹配中心坐标。

五、设计原则 基本原则:清晰(创建简单、视觉干净的图表)、一致(统一颜色、字体、图标大小、线宽)、准确(不要为了简化而牺牲准确性)。 元素规则:为所有元素添加标签;使用箭头指示方向(优先使用两个单向箭头而非双向箭头);使用最新官方图标;添加图例解释自定义符号。 无障碍:确保足够的颜色对比度;除颜色外还使用图案。 渐进式披露:将复杂系统拆分为分阶段图表,包括上下文图(从外部视角的系统概览)、系统图(主要组件和关系)、组件图(技术细节和集成点)、部署图(基础设施配置)、数据流图(数据流和转换)、序列图(时序交互)。 元数据:在图表中包含标题、描述、最后更新、作者和版本。

六、最佳实践 背景色:移除 background="#ffffff",透明背景可适应各种主题。 字体大小:使用 1.5 倍标准字体大小(约 18px)以提高 PDF 可读性。 日文文本宽度:每个字符预留 30-40px。宽度不足会导致意外换行。例如 10 个字符的文本,预留 300-400px:<mxGeometry x="140" y="60" width="400" height="40" />。 箭头放置:始终将箭头放在底层(在 XML 中紧跟在 Title 之后);放置箭头以避免与标签重叠;箭头起点/终点距标签底部边缘至少 20px。 箭头连接到文本标签:对于文本元素,exitX/exitY 不起作用,因此使用显式坐标(sourcePoint/targetPoint)。 edgeLabel 偏移调整:调整 offset 属性以使箭头标签与箭头保持距离。 移除不必要的元素:移除与上下文无关的装饰性图标。 标签和标题:仅服务名称时 1 行;服务名称加补充信息时 2 行并换行;冗余表示缩短为 1 行;使用 <br> 标签换行。 背景框和内部元素放置:在背景框(分组框)内放置元素时,确保足够边距。内部元素必须距框边界至少 30px;必须考虑圆角(rounded=1)和描边宽度;必须始终目视验证 PNG 输出是否溢出。

七、参考 布局指南、AWS 图标、AWS 图标搜索脚本。AWS 图标搜索示例:python ~/.claude/skills/draw-io/scripts/find_aws_icon.py ec2;python ~/.claude/skills/draw-io/scripts/find_aws_icon.py lambda。

八、检查清单 未设置背景色(page="0");字体大小适当(建议更大);箭头置于底层;箭头不重叠标签(在 PNG 中验证);箭头起点/终点与标签足够远(至少 20px);箭头不穿透框或图标(在 PNG 中验证);内部元素不溢出背景框(在 PNG 中验证);背景框与内部元素之间边距 30px 以上;AWS 服务名称为官方名称/正确缩写;AWS 图标为最新版本(mxgraph.aws4.*);没有剩余不必要的元素;目视验证 PNG 转换。

九、reveal.js 幻灯片中的图片显示 在 YAML 头部添加 auto-stretch: false,以确保在移动设备上正确显示图片。