.claude/skills/excalidraw-diagram/SKILL.md
Generate Excalidraw diagrams from text content. Supports three output modes - Obsidian (.md), Standard (.excalidraw), and Animated (.excalidraw with animation order). Triggers on "Excalidraw", "画图", "流程图", "思维导图", "可视化", "diagram", "标准Excalidraw", "standard excalidraw", "Excalidraw动画", "动画图", "animate".
npx skillsauth add Gerstep/cybos excalidraw-diagramInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Create Excalidraw diagrams from text content with multiple output formats.
根据用户的触发词选择输出模式:
| 触发词 | 输出模式 | 文件格式 | 用途 |
|--------|----------|----------|------|
| Excalidraw、画图、流程图、思维导图 | Obsidian(默认) | .md | 在 Obsidian 中直接打开 |
| 标准Excalidraw、standard excalidraw | Standard | .excalidraw | 在 excalidraw.com 打开/编辑/分享 |
| Excalidraw动画、动画图、animate | Animated | .excalidraw | 拖到 excalidraw-animate 生成动画 |
严格按照以下结构输出,不得有任何修改:
---
excalidraw-plugin: parsed
tags: [excalidraw]
---
==⚠ Switch to EXCALIDRAW VIEW in the MORE OPTIONS menu of this document. ⚠== You can decompress Drawing data with the command palette: 'Decompress current Excalidraw file'. For more info check in plugin settings under 'Saving'
# Excalidraw Data
## Text Elements
%%
## Drawing
\`\`\`json
{JSON 完整数据}
\`\`\`
%%
关键要点:
tags: [excalidraw]%% 标记包围excalidraw-plugin: parsed 以外的其他 frontmatter 设置.md直接输出纯 JSON 文件,可在 excalidraw.com 打开:
{
"type": "excalidraw",
"version": 2,
"source": "https://excalidraw.com",
"elements": [...],
"appState": {
"gridSize": null,
"viewBackgroundColor": "#ffffff"
},
"files": {}
}
关键要点:
source 使用 https://excalidraw.com(不是 Obsidian 插件).excalidraw与 Standard 格式相同,但每个元素添加 customData.animate 字段控制动画顺序:
{
"id": "element-1",
"type": "rectangle",
"customData": {
"animate": {
"order": 1,
"duration": 500
}
},
...其他标准字段
}
动画顺序规则:
order: 动画播放顺序(1, 2, 3...),数字越小越先出现duration: 该元素的绘制时长(毫秒),默认 500order 的元素同时出现使用方法:
.excalidraw 文件文件扩展名:.excalidraw
选择合适的图表形式,以提升理解力与视觉吸引力。
| 类型 | 英文 | 使用场景 | 做法 | |------|------|---------|------| | 流程图 | Flowchart | 步骤说明、工作流程、任务执行顺序 | 用箭头连接各步骤,清晰表达流程走向 | | 思维导图 | Mind Map | 概念发散、主题分类、灵感捕捉 | 以中心为核心向外发散,放射状结构 | | 层级图 | Hierarchy | 组织结构、内容分级、系统拆解 | 自上而下或自左至右构建层级节点 | | 关系图 | Relationship | 要素之间的影响、依赖、互动 | 图形间用连线表示关联,箭头与说明 | | 对比图 | Comparison | 两种以上方案或观点的对照分析 | 左右两栏或表格形式,标明比较维度 | | 时间线图 | Timeline | 事件发展、项目进度、模型演化 | 以时间为轴,标出关键时间点与事件 | | 矩阵图 | Matrix | 双维度分类、任务优先级、定位 | 建立 X 与 Y 两个维度,坐标平面安置 | | 自由布局 | Freeform | 内容零散、灵感记录、初步信息收集 | 无需结构限制,自由放置图块与箭头 |
fontFamily: 5(Excalifont 手写字体)" 替换为 『』() 替换为 「」lineHeight: 1.25#1e40af(深蓝)#3b82f6(亮蓝)#374151(灰色)#f59e0b(金色)参考:references/excalidraw-schema.md
Obsidian 模式:
{
"type": "excalidraw",
"version": 2,
"source": "https://github.com/zsviczian/obsidian-excalidraw-plugin",
"elements": [...],
"appState": { "gridSize": null, "viewBackgroundColor": "#ffffff" },
"files": {}
}
Standard / Animated 模式:
{
"type": "excalidraw",
"version": 2,
"source": "https://excalidraw.com",
"elements": [...],
"appState": { "gridSize": null, "viewBackgroundColor": "#ffffff" },
"files": {}
}
Each element requires these fields (do NOT add extra fields like frameId, index, versionNonce, strokeStyle, rawText -- they cause "invalid file" errors on excalidraw.com v0.17.0+):
{
"id": "unique-id",
"type": "rectangle",
"x": 100, "y": 100,
"width": 200, "height": 50,
"angle": 0,
"strokeColor": "#1e1e1e",
"backgroundColor": "transparent",
"fillStyle": "solid",
"strokeWidth": 2,
"roughness": 1,
"opacity": 100,
"groupIds": [],
"roundness": {"type": 3},
"seed": 123456789,
"version": 1,
"isDeleted": false,
"boundElements": null,
"updated": 1,
"link": null,
"locked": false
}
Text elements add:
{
"text": "显示文本",
"fontSize": 20,
"fontFamily": 5,
"textAlign": "center",
"verticalAlign": "middle",
"containerId": null,
"originalText": "显示文本",
"autoResize": true,
"lineHeight": 1.25
}
Animated 模式额外添加 customData 字段:
{
"id": "title-1",
"type": "text",
"customData": {
"animate": {
"order": 1,
"duration": 500
}
},
...其他字段
}
See references/excalidraw-schema.md for all element types.
## Text Elements 部分在 Markdown 中必须留空,仅用 %% 作为分隔符id(可以是字符串,如「title」「box1」等)IMPORTANT: Do NOT include frameId, index, versionNonce, strokeStyle, or rawText fields. These cause "Error: invalid file" on excalidraw.com v0.17.0+. Use boundElements: null (not []), and updated: 1 (not timestamps).
{
"id": "unique-identifier",
"type": "rectangle|text|arrow|ellipse|diamond",
"x": 100, "y": 100,
"width": 200, "height": 50,
"angle": 0,
"strokeColor": "#color-hex",
"backgroundColor": "transparent|#color-hex",
"fillStyle": "solid",
"strokeWidth": 2,
"roughness": 1,
"opacity": 100,
"groupIds": [],
"roundness": {"type": 3},
"seed": 123456789,
"version": 1,
"isDeleted": false,
"boundElements": null,
"updated": 1,
"link": null,
"locked": false
}
文本元素 (type: "text") 需要额外属性(do NOT include rawText):
{
"text": "显示文本",
"fontSize": 20,
"fontFamily": 5,
"textAlign": "center",
"verticalAlign": "middle",
"containerId": null,
"originalText": "显示文本",
"autoResize": true,
"lineHeight": 1.25
}
"appState": {
"gridSize": null,
"viewBackgroundColor": "#ffffff"
}
"files": {}
当生成 Excalidraw 图表时,必须自动执行以下步骤:
根据输出模式选择文件扩展名:
| 模式 | 文件名格式 | 示例 |
|------|-----------|------|
| Obsidian | [主题].[类型].md | 商业模式.relationship.md |
| Standard | [主题].[类型].excalidraw | 商业模式.relationship.excalidraw |
| Animated | [主题].[类型].animate.excalidraw | 商业模式.relationship.animate.excalidraw |
{current_directory}/[filename].md必须按以下格式生成(不能有任何修改):
---
excalidraw-plugin: parsed
tags: [excalidraw]
---
==⚠ Switch to EXCALIDRAW VIEW in the MORE OPTIONS menu of this document. ⚠== You can decompress Drawing data with the command palette: 'Decompress current Excalidraw file'. For more info check in plugin settings under 'Saving'
# Excalidraw Data
## Text Elements
%%
## Drawing
\`\`\`json
{完整的 JSON 数据}
\`\`\`
%%
fontFamily: 5" 替换为 『』() 替换为 「」idappState 和 files: {} 字段向用户报告:
Obsidian 模式:
Excalidraw 图已生成!
保存位置:商业模式.relationship.md
使用方法:
1. 在 Obsidian 中打开此文件
2. 点击右上角 MORE OPTIONS 菜单
3. 选择 Switch to EXCALIDRAW VIEW
Standard 模式:
Excalidraw 图已生成!
保存位置:商业模式.relationship.excalidraw
使用方法:
1. 打开 https://excalidraw.com
2. 点击左上角菜单 → Open → 选择此文件
3. 或直接拖拽文件到 excalidraw.com 页面
Animated 模式:
Excalidraw 动画图已生成!
保存位置:商业模式.relationship.animate.excalidraw
动画顺序:标题(1) → 主框架(2-4) → 连接线(5-7) → 说明文字(8-10)
生成动画:
1. 打开 https://dai-shi.github.io/excalidraw-animate/
2. 点击 Load File 选择此文件
3. 预览动画效果
4. 点击 Export 导出 SVG 或 WebM
development
Best practices for Remotion - Video creation in React
development
Senior UI/UX Engineer. Architect digital interfaces overriding default LLM biases. Enforces metric-based rules, strict component architecture, CSS hardware acceleration, and balanced design engineering.
documentation
Iterative critique and improvement of long-form content (guidebooks, playbooks, essays). Launches parallel judge subagents for multi-dimensional critique, synthesizes findings, presents proposals for user approval. Never edits without consent.
tools
Process Telegram messages via GramJS MTProto client. Read messages, generate AI drafts, save drafts, and create intro groups. Use when handling Telegram conversations or facilitating introductions.