Smart Illustrator - 智能配图与 PPT 生成器
⛔ 强制规则(违反即失败)
规则 1:用户提供的文件 = 要处理的文章
CODEBLOCK0
无论文件名叫什么,都是要配图的文章,不是 Skill 配置。
规则 2:必须读取 style 文件
生成任何图片 prompt 前,必须读取对应的 style 文件:
| 模式 | 必须读取的文件 |
|---|
| 文章配图(默认) | INLINECODE0 |
| Cover 封面图 |
styles/style-cover.md |
|
--style dark |
styles/style-dark.md |
|
--style bento |
styles/style-bento.md |
禁止自己编写 System Prompt。
❌ 错误:"你是一个专业的信息图设计师..."(自己编的)
✅ 正确:从 style 文件的代码块中提取 System Prompt
使用方式
文章配图模式(默认)
CODEBLOCK1
PPT/Slides 模式
CODEBLOCK2
默认行为:调用 Gemini API 生成批量信息图。
--prompt-only:输出 JSON prompt 并自动复制到剪贴板,可直接粘贴到 Gemini Web 手动生成。
PPT JSON 格式(--prompt-only 时输出):
CODEBLOCK3
Cover 模式
CODEBLOCK4
平台尺寸(输出均为 2K 分辨率):
| 平台 | 代码 | 宽高比 |
|---|
| YouTube | INLINECODE9 | 16:9 |
| 公众号 |
wechat | 2.35:1 |
| Twitter |
twitter | 1.91:1 |
| 小红书 |
xiaohongshu | 3:4 |
参数说明
| 参数 | 默认值 | 说明 |
|---|
| INLINECODE13 | INLINECODE14 | INLINECODE15 / slides / INLINECODE17 |
| INLINECODE18 |
youtube | 封面图平台(仅 cover 模式) |
|
--topic | - | 封面图主题(仅 cover 模式) |
|
--prompt-only |
false | 输出 prompt 到剪贴板,不调用 API(适用于所有模式) |
|
--style |
light | 风格:
light /
dark /
minimal /
bento |
|
--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 |
CODEBLOCK5
三级配图引擎
| 优先级 | 引擎 | 适用场景 | 输出 |
|---|
| 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 写法(放在图表末尾):
CODEBLOCK6
Mermaid 布局规则
- - 布局方向:默认
TB(上到下),横向流程用 INLINECODE58 - 箭头分级:
--> 主流程 / -.-> 可选/辅助路径 / ==> 重点强调 - 分组:用
subgraph 对相关节点分组,标题简洁 - 节点文字:≤ 8 字,无 emoji,禁止
1. 格式(用 ① 或 Step 1:) - 节点数量:单图 ≤ 15 个节点,复杂内容拆成多图
--engine 参数:
- -
auto(默认):根据内容类型自动选择(优先级 Gemini > Excalidraw > Mermaid) - INLINECODE68 :强制只使用 Gemini(适合创意内容)
- INLINECODE69 :强制只使用 Excalidraw(适合手绘概念图)
- INLINECODE70 :强制只使用 Mermaid(适合技术文档)
执行流程
Step 1: 分析文章
- 1. 读取文章内容
- 识别配图位置(通常 3-5 个)
- 为每个位置确定引擎(Gemini / Excalidraw / Mermaid)
Step 2: 生成图片
Mermaid(结构化图形)→ PNG
- 1. 生成 Mermaid 代码,保存为临时
.mmd 文件 - 调用 mermaid-export.ts 导出高分辨率 PNG:
CODEBLOCK7
- 3. 在文章中插入 PNG 图片引用
- 保留 .mmd 源文件用于后续编辑
使用 --mermaid-embed 参数时,改为直接嵌入 Mermaid 代码块(旧行为)。
Excalidraw(手绘/概念图)→ PNG
- 1. 读取
references/excalidraw-guide.md 获取 JSON 规范 - 生成 Excalidraw JSON,保存为
.excalidraw 文件 - 调用 excalidraw-export.ts 导出 PNG:
CODEBLOCK8
- 4. 在文章中插入 PNG 图片引用
- 保留 .excalidraw 源文件用于后续编辑
依赖未安装时的降级:提示手动打开 excalidraw.com 导出。
Gemini(创意/视觉图形)
命令模板(必须使用 HEREDOC + prompt-file):
CODEBLOCK9
封面图(16:9):
CODEBLOCK10
参数传递:用户指定的 --no-config、--ref、-c 必须传递给脚本。
Step 3: 创建带配图的文章
保存为 {文章名}-image.md,包含:
- - YAML frontmatter 声明封面图
- 正文配图插入
Step 4: 输出确认
报告:生成了几张图片、输出文件列表。
--prompt-only 模式
当使用 --prompt-only 时,不调用 API,而是:
- 1. 生成 JSON prompt
- 自动复制到剪贴板(使用
pbcopy) - 同时保存到文件备份
CODEBLOCK11
用户可直接粘贴到 Gemini Web 手动生成图片。
输出文件
CODEBLOCK12
Smart Illustrator - 智能配图与 PPT 生成器
⛔ 强制规则(违反即失败)
规则 1:用户提供的文件 = 要处理的文章
/smart-illustrator SKILL05.md → SKILL05.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 |
| --style bento | styles/style-bento.md |
禁止自己编写 System Prompt。
❌ 错误:你是一个专业的信息图设计师...(自己编的)
✅ 正确:从 style 文件的代码块中提取 System Prompt
使用方式
文章配图模式(默认)
bash
/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 模式
bash
默认:直接生成图片
/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 时输出):
json
{
instruction: 请逐条生成以下 N 张独立信息图。,
batchrules: { total: N, oneitemoneimage: true, aspect_ratio: 16:9 },
style: [从 styles/style-light.md 读取完整内容],
pictures: [
{ id: 1, topic: 封面, content: 系列名称\n\n第N节:标题 },
{ id: 2, topic: 主题, content: 原始内容 }
]
}
Cover 模式
bash
/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 | 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 / bento |
| --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 |
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 > Ex