excalidraw-diagram
10
总安装量
10
周安装量
#30892
全站排名
安装命令
npx skills add https://github.com/oldwinter/skills --skill excalidraw-diagram
Agent 安装分布
amp
10
github-copilot
10
codex
10
kimi-cli
10
gemini-cli
10
cursor
10
Skill 文档
Excalidraw Diagram Generator
Create Excalidraw diagrams from text content, outputting Obsidian-ready .md files.
Workflow
- Analyze content – identify concepts, relationships, hierarchy
- Choose diagram type (see below)
- Generate Excalidraw JSON
- Generate Obsidian-ready
.mdfile with Excalidraw frontmatter - Automatically save to current working directory
- Notify user with file path and confirm save successful
Output Format
ä¸¥æ ¼æç §ä»¥ä¸ç»æè¾åºï¼ä¸å¾æä»»ä½ä¿®æ¹ï¼
---
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 宿´æ°æ®}
\`\`\`
%%
å ³é®è¦ç¹ï¼
- Frontmatter å¿
é¡»å
å«
tags: [excalidraw] - è¦åä¿¡æ¯å¿ 须宿´
- JSON å¿
须被
%%æ è®°å å´ - ä¸è½ä½¿ç¨
excalidraw-plugin: parsed以å¤çå ¶ä» frontmatter 设置
Diagram Types & Selection Guide
éæ©åéçå¾è¡¨å½¢å¼ï¼ä»¥æåçè§£åä¸è§è§å¸å¼åã
| ç±»å | è±æ | 使ç¨åºæ¯ | åæ³ |
|---|---|---|---|
| æµç¨å¾ | Flowchart | æ¥éª¤è¯´æã工使µç¨ã任塿§è¡é¡ºåº | ç¨ç®å¤´è¿æ¥åæ¥éª¤ï¼æ¸ æ°è¡¨è¾¾æµç¨èµ°å |
| æç»´å¯¼å¾ | Mind Map | æ¦å¿µåæ£ã主é¢åç±»ãçµæææ | 以ä¸å¿ä¸ºæ ¸å¿åå¤åæ£ï¼æ¾å°ç¶ç»æ |
| å±çº§å¾ | Hierarchy | ç»ç»ç»æãå 容å级ãç³»ç»æè§£ | èªä¸è䏿èªå·¦è³å³æå»ºå±çº§èç¹ |
| å ³ç³»å¾ | Relationship | è¦ç´ ä¹é´çå½±åãä¾èµãäºå¨ | å¾å½¢é´ç¨è¿çº¿è¡¨ç¤ºå ³èï¼ç®å¤´ä¸è¯´æ |
| 对æ¯å¾ | Comparison | 两ç§ä»¥ä¸æ¹æ¡æè§ç¹çå¯¹ç §åæ | å·¦å³ä¸¤æ æè¡¨æ ¼å½¢å¼ï¼æ ææ¯è¾ç»´åº¦ |
| æ¶é´çº¿å¾ | Timeline | äºä»¶åå±ã项ç®è¿åº¦ãæ¨¡åæ¼å | 以æ¶é´ä¸ºè½´ï¼æ åºå ³é®æ¶é´ç¹ä¸äºä»¶ |
| ç©éµå¾ | Matrix | å维度åç±»ãä»»å¡ä¼å 级ãå®ä½ | å»ºç« X ä¸ Y 两个维度ï¼åæ å¹³é¢å®ç½® |
| èªç±å¸å± | Freeform | å 容鶿£ãçµæè®°å½ãåæ¥ä¿¡æ¯æ¶é | æ éç»æéå¶ï¼èªç±æ¾ç½®å¾åä¸ç®å¤´ |
Design Rules
Text & Format
- ææææ¬å
ç´ å¿
须使ç¨
fontFamily: 5ï¼Excalifont æååä½ï¼ - ææ¬ä¸çåå¼å·æ¿æ¢è§åï¼
"æ¿æ¢ä¸ºãã - ææ¬ä¸ç忬巿¿æ¢è§åï¼
()æ¿æ¢ä¸ºãã - åä½å¤§å°è§åï¼
- æ é¢ï¼24-28px
- 坿 é¢ï¼18-20px
- æ£æ/说æï¼14-16px
- è¡é«ï¼ææææ¬ä½¿ç¨
lineHeight: 1.25
Layout & Design
- ç»å¸èå´ï¼å»ºè®®ææå ç´ å¨ 0-1200 x 0-800 åºåå
- å ç´ é´è·ï¼ç¡®ä¿å ç´ é´è·éå½ï¼æ´ä½å¸å±ç¾è§
- 屿¬¡æ¸ æ°ï¼ä½¿ç¨ä¸åé¢è²åå½¢ç¶åºåä¸åå±çº§çä¿¡æ¯
- å¾å½¢å ç´ ï¼éå½ä½¿ç¨ç©å½¢æ¡ãåå½¢ãç®å¤´çå ç´ æ¥ç»ç»ä¿¡æ¯
Color Palette
- æ é¢é¢è²ï¼
#1e40afï¼æ·±èï¼ - 坿 é¢/è¿æ¥çº¿ï¼
#3b82f6ï¼äº®èï¼ - æ£ææåï¼
#374151ï¼ç°è²ï¼ - 强è°/éç¹ï¼
#f59e0bï¼éè²ï¼ - å ¶ä»é è²ï¼å»ºè®®ä½¿ç¨åè°çé è²æ¹æ¡ï¼é¿å è¿å¤é¢è²
åèï¼references/excalidraw-schema.md
JSON Structure
{
"type": "excalidraw",
"version": 2,
"source": "https://github.com/zsviczian/obsidian-excalidraw-plugin",
"elements": [...],
"appState": {
"gridSize": null,
"viewBackgroundColor": "#ffffff"
},
"files": {}
}
Element Template
Each element requires these fields:
{
"id": "unique-id",
"type": "rectangle",
"x": 100, "y": 100,
"width": 200, "height": 50,
"angle": 0,
"strokeColor": "#1e1e1e",
"backgroundColor": "transparent",
"fillStyle": "solid",
"strokeWidth": 2,
"strokeStyle": "solid",
"roughness": 1,
"opacity": 100,
"groupIds": [],
"frameId": null,
"index": "a1",
"roundness": {"type": 3},
"seed": 123456789,
"version": 1,
"versionNonce": 987654321,
"isDeleted": false,
"boundElements": [],
"updated": 1751928342106,
"link": null,
"locked": false
}
Text elements add:
{
"text": "æ¾ç¤ºææ¬",
"rawText": "æ¾ç¤ºææ¬",
"fontSize": 20,
"fontFamily": 5,
"textAlign": "center",
"verticalAlign": "middle",
"containerId": null,
"originalText": "æ¾ç¤ºææ¬",
"autoResize": true,
"lineHeight": 1.25
}
See references/excalidraw-schema.md for all element types.
Additional Technical Requirements
Text Elements å¤ç
## Text Elementsé¨åå¨ Markdown ä¸å¿ é¡»ç空ï¼ä» ç¨%%ä½ä¸ºåé符- Obsidian ExcaliDraw æä»¶ä¼æ ¹æ® JSON æ°æ®èªå¨å¡«å ææ¬å ç´
- ä¸éè¦æå¨ååºææææ¬å 容
åæ ä¸å¸å±
- åæ ç³»ç»ï¼å·¦ä¸è§ä¸ºåç¹ (0,0)
- æ¨èèå´ï¼ææå ç´ å¨ 0-1200 x 0-800 åç´ èå´å
- å
ç´ IDï¼æ¯ä¸ªå
ç´ éè¦å¯ä¸ç
idï¼å¯ä»¥æ¯å符串ï¼å¦ãtitleããbox1ãçï¼ - Index åæ®µï¼å»ºè®®ä½¿ç¨åæ¯æ°å (a1, a2, a3…)
Required Fields for All Elements
{
"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,
"strokeStyle": "solid|dashed",
"roughness": 1,
"opacity": 100,
"groupIds": [],
"frameId": null,
"index": "a1",
"roundness": {"type": 3},
"seed": 123456789,
"version": 1,
"versionNonce": 987654321,
"isDeleted": false,
"boundElements": [],
"updated": 1751928342106,
"link": null,
"locked": false
}
Text-Specific Properties
ææ¬å ç´ (type: “text”) éè¦é¢å¤å±æ§ï¼
{
"text": "æ¾ç¤ºææ¬",
"rawText": "æ¾ç¤ºææ¬",
"fontSize": 20,
"fontFamily": 5,
"textAlign": "center",
"verticalAlign": "middle",
"containerId": null,
"originalText": "æ¾ç¤ºææ¬",
"autoResize": true,
"lineHeight": 1.25
}
appState é ç½®
"appState": {
"gridSize": null,
"viewBackgroundColor": "#ffffff"
}
files åæ®µ
"files": {}
Implementation Notes
Auto-save & File Generation Workflow
å½çæ Excalidraw å¾è¡¨æ¶ï¼å¿ é¡»èªå¨æ§è¡ä»¥ä¸æ¥éª¤ï¼
1. éæ©åéçå¾è¡¨ç±»å
- æ ¹æ®ç¨æ·æä¾çå å®¹ç¹æ§ï¼åè䏿¹ ãDiagram Types & Selection Guideã 表
- åæå å®¹çæ ¸å¿è¯æ±ï¼éæ©æåéçå¯è§åå½¢å¼
2. çæææä¹çæä»¶å
- æ ¼å¼ï¼
[主é¢].[ç±»å].md - ä¾å¦ï¼
å 容å使µç¨.flowchart.mdãAxtonå䏿¨¡å¼.relationship.md - ä¼å 使ç¨ä¸æä»¥æé«æ¸ æ°åº¦
3. ä½¿ç¨ Write å·¥å ·èªå¨ä¿åæä»¶
- ä¿åä½ç½®ï¼å½åå·¥ä½ç®å½ï¼èªå¨æ£æµç¯å¢åéï¼
- 宿´è·¯å¾ï¼
{current_directory}/[filename].md - è¿æ ·å¯ä»¥å®ç°çµæ´»è¿ç§»ï¼æ é硬ç¼ç è·¯å¾
4. ç¡®ä¿ Markdown ç»æå®å ¨æ£ç¡®
å¿ é¡»æä»¥ä¸æ ¼å¼çæï¼ä¸è½æä»»ä½ä¿®æ¹ï¼ï¼
---
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 æ°æ®}
\`\`\`
%%
5. JSON æ°æ®è¦æ±
- â å å«å®æ´ç Excalidraw JSON ç»æ
- â
ææææ¬å
ç´ ä½¿ç¨
fontFamily: 5 - â
ææ¬ä¸ç
"æ¿æ¢ä¸ºãã - â
ææ¬ä¸ç
()æ¿æ¢ä¸ºãã - â JSON æ ¼å¼å¿ é¡»ææï¼éè¿è¯æ³æ£æ¥
- â
ææå
ç´ æå¯ä¸ç
id - â
å
å«
appStateåfiles: {}åæ®µ
6. ç¨æ·åé¦ä¸ç¡®è®¤
åç¨æ·æ¥åï¼
- â å¾è¡¨å·²çæ
- ð 精确çä¿åä½ç½®
- ð å¦ä½å¨ Obsidian 䏿¥ç
- ð¨ å¾è¡¨çè®¾è®¡éæ©è¯´æï¼éæ©äºä»ä¹ç±»åçå¾è¡¨ã为ä»ä¹ï¼
- â æ¯å¦éè¦è°æ´æä¿®æ¹
Example Output Message
â
Excalidraw å¾å·²èªå¨çæï¼
ð ä¿åä½ç½®ï¼
Axton_2026å䏿¨¡å¼.relationship.md
ð¨ å¾è¡¨éæ©è¯´æï¼
æéæ©äºãå
³ç³»å¾ãæ¥è¡¨ç°ä¸å¤§äº§å线ä¹é´ç转åå
³ç³»ï¼ç¨ç®å¤´å±ç¤ºç¨æ·çå级路å¾ï¼ä»¥åå®ä»¬å¦ä½å
±åææå®æ´çåä¸éç¯ã
ð ä½¿ç¨æ¹æ³ï¼
1. å¨ Obsidian 䏿弿¤æä»¶
2. ç¹å»å³ä¸è§ãMORE OPTIONSãèå
3. éæ©ãSwitch to EXCALIDRAW VIEWã
4. å³å¯çå°å¯è§åçå䏿¨¡å¼å
¨æ¯
éè¦è°æ´åï¼æ¯å¦æ¹åå¸å±ãæ·»å æ´å¤ç»èæè°æ´é
è²ï¼ç´æ¥åè¯æï¼