mcpField
I
illustre

illustre

github.com/naiersaidane设计与 UI63503 次安装14 周前更新
代码仓库

关于 illustre

illustre 是用于生成 Excalidraw 图表的设计技能,面向制作课程、文章、视频和演示材料的人。它强调用图表表达关系、变化和因果,并可将结果渲染为 PNG 与 SVG。

主要功能

  1. 01按关系选择图表结构
  2. 02遵循品牌色彩与排版规范
  3. 03生成 Excalidraw JSON 文件
  4. 04渲染为 PNG 和 SVG
  5. 05支持合并或拆分图表文件

适用场景

  1. 01为视频制作成组幻灯图表
  2. 02为课程或文章绘制独立示意图
  3. 03将技术流程转成可视化图表

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/naiersaidane/claude-mastery --skill illustre

安装后在 Claude Code 中输入/illustre确认已加载。

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

references/
color-palette.md
element-templates.md
pyproject.toml
render_excalidraw.py
render_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 个元素),应分节构建:

  1. 描述性 ID:使用易于理解的字符串 ID("input-webhook"、"process-filter")
  2. 按章节划分命名空间:按章节分组 seeds
  3. 逐步构建:逐节生成并检查,然后组装
  4. 绝不要尝试一次性生成整个图表

输出工作流

步骤 A:设计
  1. 确定视觉内容的保存位置。如有需要则询问,或根据上下文推断:
    • 如果存在 YouTube 项目(目录 output/YYYY-MM-DD_sujet/),保存到 output/YYYY-MM-DD_sujet/diagrams/
    • 如果正在制作课程/文章,询问目录(通常为 <projet>/assets/diagrams/ 或 <projet>/images/)
    • 否则,建议使用当前目录下的 ./diagrams/
  2. 确定所有必要的视觉内容
  3. 提议要创建的图表(数量、类型、位置)
  4. 等待确认
步骤 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:验证
  1. 展示生成的每张图表
  2. 检查清单:
    • 在目标尺寸下(YouTube 手机屏幕、课程屏幕、文章版面)是否清晰易读?
    • 对比度是否足够?
    • 文本是否为法语?
    • 是否没有截断或溢出的文本?
    • 关系/箭头是否清晰?
    • 能否在 3-5 秒内理解?
  3. 如有必要,提出调整建议
步骤 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)画布是通用默认值;只有在上下文明确需要时才调整(静态文章、自定义网页嵌入)

评论

支持 Markdown