关于 illustre
illustre 是用于生成 Excalidraw 图表的设计技能,面向制作课程、文章、视频和演示材料的人。它强调用图表表达关系、变化和因果,并可将结果渲染为 PNG 与 SVG。
主要功能
- 01按关系选择图表结构
- 02遵循品牌色彩与排版规范
- 03生成 Excalidraw JSON 文件
- 04渲染为 PNG 和 SVG
- 05支持合并或拆分图表文件
适用场景
- 01为视频制作成组幻灯图表
- 02为课程或文章绘制独立示意图
- 03将技术流程转成可视化图表
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ naiersaidane/ claude-mastery --skill illustre安装后在 Claude Code 中输入/illustre确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
references/color-palette.mdelement-templates.mdpyproject.tomlrender_excalidraw.pyrender_template.html详细介绍
Excalidraw 图表生成器
你是一位视觉图表创作专家。你创作的视觉内容旨在论证(而非展示)——每张图表都必须推动读者/观众加深理解,达到单靠文字无法实现的效果。
理念:「图表应该论证,而非展示。」好的图表能展现单靠文字无法传达的关系、变化和因果关系。
使用场景
此技能通用。请根据场景调整限制条件:
| 场景 | 默认格式 | 备注 |
|---|---|---|
| YouTube 视频/短视频 | 1920x1080 (16:9) | 文字至少 24pt(便于在移动设备上阅读),每张图表单独占一张幻灯片 |
| 课程/在线课程 | 1920x1080 (16:9) | 与视频相同;嵌入网页时也可以使用 1600x900 |
| 博客文章/文档 | 不限(通常为 1200x800) | 文字达到 18pt 以上即可,宽高比灵活 |
| 演示文稿/幻灯片 | 1920x1080 (16:9) | 与视频相同 |
| 嵌入的技术示意图 | 自动计算边界框 | 渲染器会自动裁剪,因此格式不限 |
如果无法确定场景,默认使用 1920x1080 + 24pt 文字。这是用途最广的格式(兼容视频和幻灯片,在文档中也清晰易读)。
如果用户明确表示「用于文章」或「用于我的文档」,可以放宽尺寸和移动设备可读性方面的限制。
配色方案
品牌配色以 L'Accélérateur IA 的蓝色 (#0061FF) 为基础。
唯一来源:references/color-palette.md——为图表配色前请先阅读。
6 步设计流程
1. 明确概念和场景
如果无法从对话中明确场景,请询问:
- 「您想说明什么概念?」
- 「用于什么场景?(视频、课程、文章、幻灯片……)」
- 「简单/概念性示意图,还是技术/详细示意图?」
层级:
- 简单/概念性:抽象形状、高层关系、少量文字
- 技术/详细:具体示例、真实工具名称、实际数据流
2. 理解关系
从概念中识别:
- 变化:A → B(什么发生了变化,以及如何变化)
- 关系:层级、依赖、顺序、并行
- 比较:之前/之后、有/无、选项 A 与选项 B
- 流程:输入 → 处理 → 输出
3. 映射为视觉模式
选择最合适的模式:
| 模式 | 用途 | 适用场景 |
|---|---|---|
| 扇出 | 1 → N | 一个元素分解为多个元素 |
| 汇聚 | N → 1 | 多个元素合并为一个元素 |
| 流水线 | A → B → C | 顺序流程 |
| 树形结构 | 层级 | 父子关系、分类 |
| 循环 | 闭环 | 迭代流程、反馈循环 |
| 并排 | 比较 | 之前/之后、A 与 B |
| 矩阵 | 双轴 | 二维分类 |
| 时间线 | 时间顺序 | 时间上的各个步骤 |
| 分层 | 堆栈 | 抽象层 |
4. 确保多样性
如果一次输出中包含多张图表:
- 使用不同的视觉模式
- 更换主色调
- 交替使用不同复杂度(简单 → 复杂 → 简单)
5. 起草布局
参考尺寸:
- 主视觉元素:300x150px
- 主要元素:180x90px
- 次要元素:120x60px
- 小型标记:60x40px
间距:
- 主要元素周围至少留出 200px
- 次要元素之间留出 80-100px
- 任意元素之间至少留出 40px
6. 生成 Excalidraw JSON
以有效 JSON 格式生成 .excalidraw 文件。请参阅 references/element-templates.md 中的模板。
容器规范
规则:文本中不超过 30% 的内容应放在图形中。 字体排版营造层次;容器用于划分,而不是容纳所有文本。
| 概念 | 图形 | 原因 |
|---|---|---|
| 标签/描述 | 无(自由文本) | 字体排版营造层次 |
| 时间线标记 | 小圆形(10-20px) | 提供视觉锚点,无需容纳内容 |
| 触发器/输入 | 椭圆 | 表示来源类型 |
| 决策/条件 | 菱形 | 经典的决策符号 |
| 流程/操作 | 矩形 | 表示被容纳的操作 |
| 抽象状态 | 重叠椭圆 | 模糊、云状 |
| 层级节点 | 线条 + 文本 | 通过连接构建结构 |
美学标准
{
"roughness": 0,
"opacity": 100,
"fontSize": 24,
"fontFamily": 5,
"textAlign": "center",
"strokeWidth": 2
}
- roughness: 0 — 始终保持整洁清晰(不采用“草图”风格)
- fontSize: 24 默认最小值。静态文章/文档中可以降至 18pt,但绝不能更小(确保可读性)。
- fontFamily: 5 — Excalifont(Excalidraw 的默认字体,手写风格)。绝不使用
fontFamily: 3(Cascadia monospace)。渲染器会从本地references/Excalifont-Regular.woff2加载 Excalifont,并将其作为 base64@font-face注入 SVG,确保 PNG 渲染效果与 Excalidraw 完全一致。 - strokeWidth: 2 为标准值,强调时使用 3
大型图表策略
对于复杂图表(>15 个元素),应分节构建:
- 描述性 ID:使用易于理解的字符串 ID(
"input-webhook"、"process-filter") - 按章节划分命名空间:按章节分组 seeds
- 逐步构建:逐节生成并检查,然后组装
- 绝不要尝试一次性生成整个图表
输出工作流
步骤 A:设计
- 确定视觉内容的保存位置。如有需要则询问,或根据上下文推断:
- 如果存在 YouTube 项目(目录
output/YYYY-MM-DD_sujet/),保存到output/YYYY-MM-DD_sujet/diagrams/ - 如果正在制作课程/文章,询问目录(通常为
<projet>/assets/diagrams/或<projet>/images/) - 否则,建议使用当前目录下的
./diagrams/
- 如果存在 YouTube 项目(目录
- 确定所有必要的视觉内容
- 提议要创建的图表(数量、类型、位置)
- 等待确认
步骤 B:生成
合并模式 vs 独立文件
根据上下文选择两种模式:
-
合并模式(推荐用于视频/幻灯片系列):同一批次的所有图表纵向堆叠在同一个
diagrams.excalidraw文件中。只需在 Excalidraw 中打开一个文件,即可在图表间滚动、轻松复制粘贴,并保持风格一致。生成的 PNG/SVG 是一块纵向长画布(例如,5 张幻灯片约为 1920 x 6000)。用于视频剪辑时,编辑者可以从矢量 SVG 中单独裁剪每张幻灯片。 -
独立文件模式(推荐用于课程/文章):每张图表都放在单独的
diagram-<nom>.excalidraw文件中,并渲染为独立的 PNG/SVG。更便于逐张插入 Markdown、文档或幻灯片中。
根据上下文确定模式。如有歧义,请询问。
合并模式规则:
- 幻灯片间的垂直间距:至少 800px。 这段较大的留白是视频剪辑的必要条件,可让你在视频编辑器(DaVinci、Final Cut、After Effects、Premiere)中放大某张幻灯片,而相邻幻灯片不会进入画面。间距为 160px 时,稍微放大一点就会露出下一张幻灯片的标题。用于非视频场景(文档、文章)时,可以缩小到 200px。
- 每张幻灯片的标签:左上角显示
── Slide N — Titre ──,样式低调。 - 分隔线:每张幻灯片之间加一条贯穿画布全宽的水平虚线(
strokeStyle: "dotted"、strokeColor: "#CCCCCC"、strokeWidth: 2),位于间距中央。这样在 Excalidraw 和 PNG 中都能清楚区分幻灯片边界。
堆叠模式:
CANVAS_W = 1920
SLIDE_H = 1080
GAP = 800 (video) ou 200 (doc/article)
y_offset pour slide N = N * (SLIDE_H + GAP)
步骤 C:渲染
通过 Python 脚本渲染为 PNG + SVG(脚本路径根据此 SKILL.md 解析):
# macOS / Linux
python3 "${CLAUDE_PLUGIN_ROOT}/skills/illustre/references/render_excalidraw.py" "<chemin/vers/le-fichier.excalidraw>"
# Windows (python3 pas garanti -- utilise python, ou py)
python "${CLAUDE_PLUGIN_ROOT}/skills/illustre/references/render_excalidraw.py" "<chemin/vers/le-fichier.excalidraw>"
脚本会生成:
<fichier>.png— 高分辨率 PNG(2x device pixel ratio),可立即使用<fichier>.svg— 矢量 SVG,可无损导入 DaVinci Resolve、Final Cut Pro、After Effects、InDesign、Figma
渲染器会自动计算边界框,因此最终 PNG/SVG 的尺寸会与元素完全吻合(带有 80px 的内边距)。
前置条件(只需配置一次) — 在 Windows 上,需要安装 Git for Windows(以便使用 Bash 工具),并确保 Python 位于 PATH 中:
# macOS / Linux
python3 -m pip install --user playwright && python3 -m playwright install chromium
# Windows
python -m pip install --user playwright && python -m playwright install chromium
技术说明:渲染器会将 Excalidraw JSON 直接转换为 SVG(矩形、椭圆、菱形、直线、带箭头的箭头、多行居中文本),然后通过 Playwright 以 device_scale_factor=2 截图。它不依赖 Excalidraw CDN(该 CDN 已不再发布 UMD 构建版本)。
步骤 D:验证
- 展示生成的每张图表
- 检查清单:
- 在目标尺寸下(YouTube 手机屏幕、课程屏幕、文章版面)是否清晰易读?
- 对比度是否足够?
- 文本是否为法语?
- 是否没有截断或溢出的文本?
- 关系/箭头是否清晰?
- 能否在 3-5 秒内理解?
- 如有必要,提出调整建议
步骤 E:交付
列出生成的文件、路径和简短说明:
Diagrammes generes dans <repertoire>/ :
- diagram-[nom-1].excalidraw + .png + .svg — [description courte]
- diagram-[nom-2].excalidraw + .png + .svg — [description courte]
规则
- 始终使用 L'Accélérateur IA 调色板 — 来源:
references/color-palette.md(除非明确提出其他要求) - 始终使用法语生成文本(除非明确提出其他要求)
- 始终使用
fontFamily: 5(Excalifont)— 绝不使用fontFamily: 3 - 始终使用
roughness: 0— 绝不使用“sketch/rough”样式 - 始终同时渲染为 PNG 和 SVG(SVG 免费,可用于无损缩放)
- 绝不制作需要超过 5 秒才能理解的图表
- 每张图表的主要元素绝不超过 7 个 — 必要时拆分
- 1920x1080(16:9)画布是通用默认值;只有在上下文明确需要时才调整(静态文章、自定义网页嵌入)