smart-illustrator
npx skills add https://github.com/axtonliu/smart-illustrator --skill smart-illustrator
Agent 安装分布
Skill 文档
Smart Illustrator – æºè½é å¾ä¸ PPT çæå¨
â 强å¶è§åï¼è¿åå³å¤±è´¥ï¼
è§å 1ï¼ç¨æ·æä¾çæä»¶ = è¦å¤ççæç«
/smart-illustrator SKILL_05.md â SKILL_05.md æ¯æç« ï¼ä¸ºå®é
å¾
/smart-illustrator README.md â README.md æ¯æç« ï¼ä¸ºå®é
å¾
/smart-illustrator whatever.md â whatever.md æ¯æç« ï¼ä¸ºå®é
å¾
æ 论æä»¶åå«ä»ä¹ï¼é½æ¯è¦é å¾çæç« ï¼ä¸æ¯ Skill é ç½®ã
è§å 2ï¼å¿ 须读å style æä»¶
çæä»»ä½å¾ç prompt åï¼å¿ 须读å对åºç style æä»¶ï¼
| æ¨¡å¼ | å¿ é¡»è¯»åçæä»¶ |
|---|---|
| æç« é å¾ï¼é»è®¤ï¼ | styles/style-light.md |
| Cover å°é¢å¾ | styles/style-cover.md |
--style dark |
styles/style-dark.md |
ç¦æ¢èªå·±ç¼å System Promptã
â é误ï¼"ä½ æ¯ä¸ä¸ªä¸ä¸çä¿¡æ¯å¾è®¾è®¡å¸..."ï¼èªå·±ç¼çï¼
â
æ£ç¡®ï¼ä» style æä»¶ç代ç å䏿å System Prompt
ä½¿ç¨æ¹å¼
æç« é 徿¨¡å¼ï¼é»è®¤ï¼
/smart-illustrator path/to/article.md
/smart-illustrator path/to/article.md --prompt-only # åªè¾åº prompt
/smart-illustrator path/to/article.md --style dark # æ·±è²é£æ ¼
/smart-illustrator path/to/article.md --no-cover # ä¸çæå°é¢å¾
PPT/Slides 模å¼
# é»è®¤ï¼ç´æ¥çæå¾ç
/smart-illustrator path/to/script.md --mode slides
# åªè¾åº JSON promptï¼ä¸è°ç¨ APIï¼
/smart-illustrator path/to/script.md --mode slides --prompt-only
é»è®¤è¡ä¸ºï¼è°ç¨ Gemini API çææ¹éä¿¡æ¯å¾ã
--prompt-onlyï¼è¾åº JSON prompt å¹¶èªå¨å¤å¶å°åªè´´æ¿ï¼å¯ç´æ¥ç²è´´å° Gemini Web æå¨çæã
PPT JSON æ ¼å¼ï¼--prompt-only æ¶è¾åºï¼ï¼
{
"instruction": "è¯·éæ¡çæä»¥ä¸ N å¼ ç¬ç«ä¿¡æ¯å¾ã",
"batch_rules": { "total": "N", "one_item_one_image": true, "aspect_ratio": "16:9" },
"style": "[ä» styles/style-light.md 读å宿´å
容]",
"pictures": [
{ "id": 1, "topic": "å°é¢", "content": "ç³»ååç§°\n\n第Nèï¼æ é¢" },
{ "id": 2, "topic": "主é¢", "content": "åå§å
容" }
]
}
Cover 模å¼
/smart-illustrator path/to/article.md --mode cover --platform youtube
/smart-illustrator --mode cover --platform youtube --topic "Claude 4 æ·±åº¦è¯æµ"
å¹³å°å°ºå¯¸ï¼è¾åºå为 2K å辨çï¼ï¼
| å¹³å° | 代ç | 宽髿¯ |
|---|---|---|
| YouTube | youtube |
16:9 |
| å ¬ä¼å· | wechat |
2.35:1 |
twitter |
1.91:1 | |
| å°çº¢ä¹¦ | xiaohongshu |
3:4 |
åæ°è¯´æ
| åæ° | é»è®¤å¼ | 说æ |
|---|---|---|
--mode |
article |
article / slides / cover |
--platform |
youtube |
å°é¢å¾å¹³å°ï¼ä» cover 模å¼ï¼ |
--topic |
– | å°é¢å¾ä¸»é¢ï¼ä» cover 模å¼ï¼ |
--prompt-only |
false |
è¾åº prompt å°åªè´´æ¿ï¼ä¸è°ç¨ APIï¼éç¨äºæææ¨¡å¼ï¼ |
--style |
light |
飿 ¼ï¼light / dark / minimal |
--no-cover |
false |
ä¸çæå°é¢å¾ |
--ref |
– | åèå¾è·¯å¾ï¼å¯å¤æ¬¡ä½¿ç¨ï¼ |
-c, --candidates |
1 |
åé徿°éï¼æå¤ 4ï¼ |
-a, --aspect-ratio |
– | 宽髿¯ï¼16:9ï¼æ£æé
å¾/å°é¢å¾é»è®¤ï¼ã3:2ï¼å¤é横çï¼ã3:4ï¼ä»
ç«å±å¹³å°ï¼ |
--engine |
auto |
弿鿩ï¼autoï¼èªå¨ï¼/ mermaid / gemini / excalidraw |
--mermaid-embed |
false |
Mermaid è¾åºä¸ºä»£ç åèé PNGï¼æ§è¡ä¸ºï¼ |
--save-config |
– | ä¿åå°é¡¹ç®é ç½® |
--no-config |
false |
ç¦ç¨ config.json |
--no-configèå´ï¼åªç¦ç¨config.jsonï¼ä¸å½±åstyles/style-*.mdã
é ç½®æä»¶
ä¼å 级ï¼CLI åæ° > 项ç®çº§ > ç¨æ·çº§
| ä½ç½® | è·¯å¾ |
|---|---|
| 项ç®çº§ | .smart-illustrator/config.json |
| ç¨æ·çº§ | ~/.smart-illustrator/config.json |
{ "references": ["./refs/style-ref-01.png"] }
ä¸çº§é å¾å¼æ
| ä¼å 级 | 弿 | éç¨åºæ¯ | è¾åº |
|---|---|---|---|
| 1 | Gemini | éå»å¾ãåæå¾ãå°é¢å¾ãæ æ³ç¨å¾è¡¨è¡¨è¾¾çæ¦å¿µ | PNG |
| 2 | Excalidraw | æ¦å¿µå¾ã对æ¯å¾ãç®åæµç¨ï¼â¤ 8 èç¹ï¼ãå ³ç³»å¾ãæç»é£æ ¼ç¤ºæå¾ | PNG |
| 3 | Mermaid | ä» éï¼å¤ææµç¨ï¼> 8 èç¹ï¼ãå¤å±æ¶æå¾ãå¤è§è²æ¶åºå¾ãå¤åæ¯å³çæ | PNG |
éæ©é»è¾ï¼
- éè¦éå»ãæ æãåæè¡¨è¾¾ â Gemini
- æ¦å¿µå ³ç³»ã对æ¯ãç®åæµç¨ â Excalidrawï¼å¤§å¤æ°å¾è¡¨åºæ¯çé¦éï¼
- åªæèç¹ > 8ãå¤å±/å¤è§è²çå¤æç»æåå¾å½¢ â Mermaid
- Mermaid è§è§è¡¨ç°åæéï¼è½ç¨ Excalidraw å°±ä¸ç¨ Mermaid
- å¯ä¸ç®æ ï¼æé«æç« å¸å¼å
çæ Excalidraw åå¿
须读å references/excalidraw-guide.mdã
Mermaid è¯ä¹è²æ¿
æ¯ç§é¢è²æåºå®å«ä¹ï¼å¿
é¡»ä½¿ç¨ classDef + class åºç¨ï¼
| è¯ä¹ | å¡«å è² | è¾¹æ¡è² | ç¨äº |
|---|---|---|---|
| input | #d3f9d8 | #2f9e44 | è¾å ¥ãèµ·ç¹ãæ°æ®æº |
| process | #e5dbff | #5f3dc4 | å¤çãæ¨çãæ ¸å¿é»è¾ |
| decision | #ffe3e3 | #c92a2a | å³çç¹ã忝夿 |
| action | #ffe8cc | #d9480f | æ§è¡å¨ä½ãå·¥å ·è°ç¨ |
| output | #c5f6fa | #0c8599 | è¾åºãç»æãç»ç¹ |
| storage | #fff4e6 | #e67700 | åå¨ãè®°å¿ãæ°æ®åº |
| meta | #e7f5ff | #1971c2 | æ é¢ãåç»ãå ä¿¡æ¯ |
classDef åæ³ï¼æ¾å¨å¾è¡¨æ«å°¾ï¼ï¼
classDef input fill:#d3f9d8,stroke:#2f9e44,color:#1a1a1a
classDef process fill:#e5dbff,stroke:#5f3dc4,color:#1a1a1a
classDef decision fill:#ffe3e3,stroke:#c92a2a,color:#1a1a1a
classDef action fill:#ffe8cc,stroke:#d9480f,color:#1a1a1a
classDef output fill:#c5f6fa,stroke:#0c8599,color:#1a1a1a
class A input
class B,C process
class D output
Mermaid å¸å±è§å
- å¸å±æ¹åï¼é»è®¤
TBï¼ä¸å°ä¸ï¼ï¼æ¨ªåæµç¨ç¨LR - ç®å¤´å级ï¼
-->主æµç¨ /-.->å¯é/è¾ å©è·¯å¾ /==>éç¹å¼ºè° - åç»ï¼ç¨
subgraph对ç¸å ³èç¹åç»ï¼æ é¢ç®æ´ - èç¹æåï¼â¤ 8 åï¼æ emojiï¼ç¦æ¢
1.æ ¼å¼ï¼ç¨âæStep 1:ï¼ - èç¹æ°éï¼åå¾ â¤ 15 个èç¹ï¼å¤æå 容ææå¤å¾
--engine åæ°ï¼
autoï¼é»è®¤ï¼ï¼æ ¹æ®å 容类åèªå¨éæ©ï¼ä¼å 级 Gemini > Excalidraw > Mermaidï¼geminiï¼å¼ºå¶åªä½¿ç¨ Geminiï¼éååæå 容ï¼excalidrawï¼å¼ºå¶åªä½¿ç¨ Excalidrawï¼éåæç»æ¦å¿µå¾ï¼mermaidï¼å¼ºå¶åªä½¿ç¨ Mermaidï¼éåææ¯ææ¡£ï¼
æ§è¡æµç¨
Step 1: åææç«
- 读åæç« å 容
- è¯å«é å¾ä½ç½®ï¼é常 3-5 个ï¼
- 为æ¯ä¸ªä½ç½®ç¡®å®å¼æï¼Gemini / Excalidraw / Mermaidï¼
Step 2: çæå¾ç
Mermaidï¼ç»æåå¾å½¢ï¼â PNG
- çæ Mermaid 代ç ï¼ä¿å为临æ¶
.mmdæä»¶ - è°ç¨ mermaid-export.ts 导åºé«å辨ç PNGï¼
npx -y bun ~/.claude/skills/smart-illustrator/scripts/mermaid-export.ts \
-i {å¾è¡¨å}.mmd -o {å¾è¡¨å}.png -w 2400
- å¨æç« ä¸æå ¥ PNG å¾çå¼ç¨
- ä¿ç .mmd æºæä»¶ç¨äºåç»ç¼è¾
ä½¿ç¨ --mermaid-embed åæ°æ¶ï¼æ¹ä¸ºç´æ¥åµå
¥ Mermaid 代ç åï¼æ§è¡ä¸ºï¼ã
Excalidrawï¼æç»/æ¦å¿µå¾ï¼â PNG
- 读å
references/excalidraw-guide.mdè·å JSON è§è - çæ Excalidraw JSONï¼ä¿å为
.excalidrawæä»¶ - è°ç¨ excalidraw-export.ts å¯¼åº PNGï¼
npx -y bun ~/.claude/skills/smart-illustrator/scripts/excalidraw-export.ts \
-i {å¾è¡¨å}.excalidraw -o {å¾è¡¨å}.png -s 2
- å¨æç« ä¸æå ¥ PNG å¾çå¼ç¨
- ä¿ç .excalidraw æºæä»¶ç¨äºåç»ç¼è¾
ä¾èµæªå®è£ æ¶çéçº§ï¼æç¤ºæå¨æå¼ excalidraw.com 导åºã
Geminiï¼åæ/è§è§å¾å½¢ï¼
å½ä»¤æ¨¡æ¿ï¼å¿ é¡»ä½¿ç¨ HEREDOC + prompt-fileï¼ï¼
# Step 1: åå
¥ prompt
cat > /tmp/image-prompt.txt <<'EOF'
{ä» style æä»¶æåç System Prompt}
**å
容**ï¼{é
å¾å
容}
EOF
# Step 2: è°ç¨èæ¬
GEMINI_API_KEY=$GEMINI_API_KEY npx -y bun ~/.claude/skills/smart-illustrator/scripts/generate-image.ts \
--prompt-file /tmp/image-prompt.txt \
--output {è¾åºè·¯å¾}.png \
--aspect-ratio 16:9
å°é¢å¾ï¼16:9ï¼ï¼
cat > /tmp/cover-prompt.txt <<'EOF'
{ä» style-cover.md æåç System Prompt}
**å
容**ï¼
- æ ¸å¿æ¦å¿µï¼{主é¢}
- è§è§éå»ï¼{设计}
EOF
GEMINI_API_KEY=$GEMINI_API_KEY npx -y bun ~/.claude/skills/smart-illustrator/scripts/generate-image.ts \
--prompt-file /tmp/cover-prompt.txt \
--output {æç« å}-cover.png \
--aspect-ratio 16:9
åæ°ä¼ éï¼ç¨æ·æå®ç --no-configã--refã-c å¿
é¡»ä¼ éç»èæ¬ã
Step 3: å建带é å¾çæç«
ä¿å为 {æç« å}-image.mdï¼å
å«ï¼
- YAML frontmatter 声æå°é¢å¾
- æ£æé å¾æå ¥
Step 4: è¾åºç¡®è®¤
æ¥åï¼çæäºå å¼ å¾çãè¾åºæä»¶å表ã
--prompt-only 模å¼
å½ä½¿ç¨ --prompt-only æ¶ï¼ä¸è°ç¨ APIï¼èæ¯ï¼
- çæ JSON prompt
- èªå¨å¤å¶å°åªè´´æ¿ï¼ä½¿ç¨
pbcopyï¼ - åæ¶ä¿åå°æä»¶å¤ä»½
# æ§è¡æ¹å¼
echo '{çæç JSON}' | pbcopy
echo "â JSON prompt å·²å¤å¶å°åªè´´æ¿"
# åæ¶ä¿åå¤ä»½
echo '{çæç JSON}' > /tmp/smart-illustrator-prompt.json
echo "â å¤ä»½å·²ä¿åå° /tmp/smart-illustrator-prompt.json"
ç¨æ·å¯ç´æ¥ç²è´´å° Gemini Web æå¨çæå¾çã
è¾åºæä»¶
article.md # åæï¼ä¸ä¿®æ¹ï¼
article-image.md # 带é
å¾çæç«
article-cover.png # å°é¢å¾ï¼16:9ï¼
article-image-01.png # Gemini é
å¾