用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
直接命令不会经过审查 Prompt;运行前请先检查来源。
npx skills add https://github.com/skanehira/dotfiles --skill utility-drawio命令会保持在同一行。复制前请横向滚动并检查完整内容。
想先保存到本地?可下载 SkillsMP 当前能够提供的文件。
正在显示 SKILL.md
| name | utility-drawio |
| description | Generate draw.io diagrams as .drawio files, optionally export to PNG/SVG/PDF with embedded XML |
| allowed-tools | Bash, Write |
Generate draw.io diagrams as native .drawio files. Optionally export to PNG, SVG, or PDF with the diagram XML embedded (so the exported file remains editable in draw.io).
Original source: https://raw.githubusercontent.com/jgraph/drawio-mcp/refs/heads/main/skill-cli/SKILL.md
.drawio file in the current working directory using the Write tool--embed-diagram, then delete the source .drawio file.drawio file otherwiseCheck the user's request for a format preference. Examples:
/drawio create a flowchart → flowchart.drawio/drawio png flowchart for login → login-flow.drawio.png/drawio svg: ER diagram → er-diagram.drawio.svg/drawio pdf architecture overview → architecture-overview.drawio.pdfIf no format is mentioned, just write the .drawio file and open it in draw.io. The user can always ask to export later.
| Format | Embed XML | Notes |
|---|---|---|
png | Yes (-e) | Viewable everywhere, editable in draw.io |
svg | Yes (-e) | Scalable, editable in draw.io |
pdf | Yes (-e) | Printable, editable in draw.io |
jpg | No | Lossy, no embedded XML support |
PNG, SVG, and PDF all support --embed-diagram — the exported file contains the full diagram XML, so opening it in draw.io recovers the editable diagram.
The draw.io desktop app includes a command-line interface for exporting.
Try drawio first (works if on PATH), then fall back to the platform-specific path:
/Applications/draw.io.app/Contents/MacOS/draw.iodrawio (typically on PATH via snap/apt/flatpak)"C:\Program Files\draw.io\draw.io.exe"Use which drawio (or where drawio on Windows) to check if it's on PATH before falling back.
drawio -x -f <format> -e -b 10 -o <output> <input.drawio>
Key flags:
-x / --export: export mode-f / --format: output format (png, svg, pdf, jpg)-e / --embed-diagram: embed diagram XML in the output (PNG, SVG, PDF only)-o / --output: output file path-b / --border: border width around diagram (default: 0)-t / --transparent: transparent background (PNG only)-s / --scale: scale the diagram size--width / --height: fit into specified dimensions (preserves aspect ratio)-a / --all-pages: export all pages (PDF only)-p / --page-index: select a specific page (1-based)open <file>xdg-open <file>start <file>login-flow, database-schema)name.drawio.png, name.drawio.svg, name.drawio.pdf — this signals the file contains embedded diagram XML.drawio file — the exported file contains the full diagramA .drawio file is native mxGraphModel XML. Always generate XML directly — Mermaid and CSV formats require server-side conversion and cannot be saved as native files.
Every diagram must have this structure:
<mxGraphModel>
<root>
<mxCell id="0"/>
<mxCell id="1" parent="0"/>
<!-- Diagram cells go here with parent="1" -->
</root>
</mxGraphModel>
id="0" is the root layerid="1" is the default parent layerparent="1" unless using multiple layersRounded rectangle:
<mxCell id="2" value="Label" style="rounded=1;whiteSpace=wrap;" vertex="1" parent="1">
<mxGeometry x="100" y="100" width="120" height="60" as="geometry"/>
</mxCell>
Diamond (decision):
<mxCell id="3" value="Condition?" style="rhombus;whiteSpace=wrap;" vertex="1" parent="1">
<mxGeometry x="100" y="200" width="120" height="80" as="geometry"/>
</mxCell>
Arrow (edge):
<mxCell id="4" value="" style="edgeStyle=orthogonalEdgeStyle;" edge="1" source="2" target="3" parent="1">
<mxGeometry relative="1" as="geometry"/>
</mxCell>
Labeled arrow:
<mxCell id="5" value="Yes" style="edgeStyle=orthogonalEdgeStyle;" edge="1" source="3" target="6" parent="1">
<mxGeometry relative="1" as="geometry"/>
</mxCell>
| Property | Values | Use for |
|---|---|---|
rounded=1 | 0 or 1 | Rounded corners |
whiteSpace=wrap | wrap | Text wrapping |
fillColor=#dae8fc | Hex color | Background color |
strokeColor=#6c8ebf | Hex color | Border color |
fontColor=#333333 | Hex color | Text color |
shape=cylinder3 | shape name | Database cylinders |
shape=mxgraph.flowchart.document | shape name | Document shapes |
ellipse | style keyword | Circles/ovals |
rhombus | style keyword | Diamonds |
edgeStyle=orthogonalEdgeStyle | style keyword | Right-angle connectors |
edgeStyle=elbowEdgeStyle | style keyword | Elbow connectors |
dashed=1 | 0 or 1 | Dashed lines |
swimlane | style keyword | Swimlane containers |
Edges MUST NOT cross over unrelated shapes. This is the most common layout problem and must be actively prevented.
Add explicit waypoints (mxPoint) to route edges around obstacles:
<mxCell id="10" value="" style="edgeStyle=orthogonalEdgeStyle;" edge="1" source="2" target="8" parent="1">
<mxGeometry relative="1" as="geometry">
<Array as="points">
<mxPoint x="50" y="400"/>
<mxPoint x="50" y="600"/>
</Array>
</mxGeometry>
</mxCell>
The Array as="points" contains intermediate coordinates the edge must pass through, allowing it to detour around intervening shapes.
Before generating each edge, mentally trace its path from source to target:
exitX, exitY, entryX, entryY (0-1 range) to control which side of a shape an edge connects to, making it easier to avoid crossings<mxCell id="11" value="" style="edgeStyle=orthogonalEdgeStyle;exitX=0;exitY=0.5;entryX=0;entryY=0.5;" edge="1" source="2" target="8" parent="1">
<mxGeometry relative="1" as="geometry">
<Array as="points">
<mxPoint x="40" y="180"/>
<mxPoint x="40" y="580"/>
</Array>
</mxGeometry>
</mxCell>
When crossings are truly unavoidable, add visual indicators:
style="edgeStyle=orthogonalEdgeStyle;jumpStyle=arc;jumpSize=10;"
| Jump style | Effect |
|---|---|
jumpStyle=arc | Small arc at crossing points |
jumpStyle=gap | Gap at crossing points |
jumpStyle=sharp | Sharp angle at crossings |
To minimize edge crossings from the start:
--) inside XML comments. -- is illegal inside <!-- --> per the XML spec and causes parse errors. Use single hyphens or rephrase.&, <, >, "id values for each mxCell基于 SOC 职业分类