[ PROMPT_NODE_23218 ]
draw-io
[ SKILL_DOCUMENTATION ]
# draw.io 图表技能
## 1. 基本规则
- 仅编辑 `.drawio` 文件
- 不要直接编辑 `.drawio.png` 文件
- 在幻灯片中使用预提交钩子自动生成的 `.drawio.png`
## 2. 字体设置
对于 Quarto 幻灯片中使用的图表,请在 mxGraphModel 标签中指定 `defaultFontFamily`:
xml
并在每个文本元素的 style 属性中显式指定 `fontFamily`:
xml
style="text;html=1;fontSize=27;fontFamily=Noto Sans JP;"
## 3. 转换命令
查看转换脚本:[scripts/convert-drawio-to-png.sh](scripts/convert-drawio-to-png.sh)。
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
使用的内部命令:
sh
drawio -x -f png -s 2 -t -o output.drawio.png input.drawio
| 选项 | 描述 |
|--------|-------------|
| `-x` | 导出模式 |
| `-f png` | PNG 格式输出 |
| `-s 2` | 2 倍缩放(高分辨率) |
| `-t` | 透明背景 |
| `-o` | 输出文件路径 |
## 4. 布局调整
### 4.1. 坐标调整步骤
1. 在文本编辑器中打开 `.drawio` 文件(纯 XML 格式)
2. 找到要调整元素的 `mxCell`(通过 `value` 属性搜索文本)
3. 在 `mxGeometry` 标签中调整坐标
- `x`: 从左侧起的位置
- `y`: 从顶部起的位置
- `width`: 宽度
- `height`: 高度
4. 运行转换并验证
### 4.2. 坐标计算
- 元素中心坐标 = `y + (height / 2)`
- 要对齐多个元素,计算并匹配中心坐标
## 5. 设计原则
### 5.1. 基本原则
- 清晰:创建简单、视觉整洁的图表
- 一致:统一颜色、字体、图标大小、线条粗细
- 准确:不要为了简化而牺牲准确性
### 5.2. 元素规则
- 标注所有元素
- 使用箭头指示方向
(优先使用 2 个单向箭头,而非双向箭头)
- 使用最新的官方图标
- 添加图例以解释自定义符号
### 5.3. 可访问性
- 确保足够的颜色对比度
- 除了颜色外,使用图案进行区分
### 5.4. 渐进式披露
将复杂系统拆分为分阶段的图表:
| 图表类型 | 目的 |
|--------------|---------|
| 上下文图 | 从外部视角概览系统 |
| 系统