用途
illustre 是一个专注于创建 Excalidraw 图表与视觉素材的技能,用于生成示意图、流程图、幻灯片和插图,并输出高分辨率 PNG/SVG。其设计哲学是“图表应当论证,而非仅仅展示”(Les diagrammes doivent ARGUMENTER, pas AFFICHER)——每个图表都应推动读者/观众的理解,完成仅靠文字无法达成的传达。
主要能力
- 生成 Excalidraw 格式(.excalidraw JSON)的图表文件。
- 渲染为高分辨率 PNG(2x 设备像素比)与矢量 SVG,SVG 可导入 DaVinci Resolve、Final Cut Pro、After Effects、InDesign、Figma 等工具而无损缩放。
- 内置品牌配色方案,以 L'Accélérateur IA 蓝色(#0061FF)为锚点,来源为 references/color-palette.md。
- 提供六步设计流程:明确概念与上下文、理解关系、映射视觉模式、确保多样性、勾勒布局、生成 Excalidraw JSON。
- 支持多种视觉模式:扇出(1→N)、汇聚(N→1)、流水线(A→B→C)、树形(层级)、循环(迭代/反馈)、并排对比、矩阵(双轴)、时间线、分层(堆叠)。
- 容器使用规范:少于 30% 的文字应放在形状内,排版负责建立层级,容器用于界定而非容纳全部文字。
- 美学标准:roughness 为 0(干净锐利,非草图风格)、fontSize 默认最小 24、fontFamily 为 5(Excalifont,手写风格,绝不使用 fontFamily 3 的 Cascadia 等宽字体)、strokeWidth 标准为 2、强调时为 3。
- 大型图表(超过 15 个元素)采用分节构建策略:使用描述性字符串 ID、按节命名空间、逐节生成并验证后组装,绝不一次性生成整个图表。
使用方式
技能按以下工作流输出:
步骤 A:设计——确定视觉素材保存位置(若存在 YouTube 项目则保存至 output/YYYY-MM-DD_sujet/diagrams/;若为课程/文章则询问目录,通常为 <projet>/assets/diagrams/ 或 <projet>/images/;否则建议当前目录下的 ./diagrams/)。识别所有需要的视觉时刻,提出要创建的图表方案(数量、类型、位置),等待确认。
步骤 B:生成——根据上下文选择两种模式:
- 分组模式(推荐用于视频/幻灯片系列):同一交付物的所有图表垂直堆叠在单个 diagrams.excalidraw 文件中,生成一个长垂直画布(如 5 张幻灯片约 1920 x 6000)。幻灯片间垂直间距至少 800px(视频用),非视频用途可降至 200px;每张幻灯片左上角标注“── Slide N — Titre ──”;幻灯片之间用水平虚线分隔(strokeStyle: "dotted", strokeColor: "#CCCCCC", strokeWidth: 2)。堆叠公式:CANVAS_W = 1920,SLIDE_H = 1080,GAP = 800(视频)或 200(文档/文章),第 N 张幻灯片的 y_offset = N * (SLIDE_H + GAP)。
- 独立文件模式(推荐用于课程/文章):每个图表单独一个 diagram-<nom>.excalidraw 文件,独立渲染 PNG/SVG,便于逐个插入 markdown、文档或幻灯片。
步骤 C:渲染——通过 Python 脚本渲染 PNG + SVG:
macOS / Linux: python3 "${CLAUDE_PLUGIN_ROOT}/skills/illustre/references/render_excalidraw.py" "<chemin/vers/le-fichier.excalidraw>"
Windows: python "${CLAUDE_PLUGIN_ROOT}/skills/illustre/references/render_excalidraw.py" "<chemin/vers/le-fichier.excalidraw>"
脚本生成 <fichier>.png(高分辨率,2x)与 <fichier>.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(其 UMD 构建已不再发布)。
步骤 D:验证——展示每个生成的图表,检查清单:目标格式下可读(移动端 YouTube、课程屏幕、文章尺寸)?对比度足够?文字为法语?无截断或溢出文字?关系/箭头清晰?3-5 秒内可理解?必要时提出调整。
步骤 E:展示——列出生成的文件及其路径和简短描述。
适用场景
技能为通用型,根据上下文调整约束:
- YouTube 视频 / 短视频:1920x1080(16:9),文字最小 24pt(移动端可读性),每张幻灯片一个图表。
- 课程 / 在线教学:1920x1080(16:9),同视频;若嵌入网页也可用 1600x900。
- 博客文章 / 文档:自由尺寸(常用 1200x800),文字 18pt+ 即可,比例灵活。
- 演示 / 幻灯片:1920x1080(16:9),同视频。
- 技术示意图嵌入:自动边界框,渲染器自动裁剪,自由格式可用。
默认在上下文不明确时使用 1920x1080 + 24pt 文字,这是最通用的格式(兼容视频、幻灯片,文档中也可读)。若用户明确说“用于文章”或“用于我的文档”,可放宽尺寸与移动端可读性约束。
限制
- 每个图表不超过 7 个主要元素,超出需拆分。
- 任何图表不得需要超过 5 秒才能被理解。
- 始终使用 L'Accélérateur IA 配色(除非明确要求相反)。
- 始终生成法语文本(除非明确要求相反)。
- 始终使用 fontFamily: 5(Excalifont),绝不使用 fontFamily: 3。
- 始终使用 roughness: 0,绝不使用“草图/粗糙”风格。
- 始终渲染 PNG 与 SVG 两种格式。
- 布局参考尺寸:主元素(Hero)300x150px,一级 180x90px,二级 120x60px,小标记 60x40px;主元素周围留白 200px+,二级元素间 80-100px,任意元素间最小 40px。
- 容器规则:少于 30% 的文字放在形状内;标签/描述用自由文本,时间线标记用小圆(10-20px),触发器/输入用椭圆,决策/条件用菱形,流程/动作用矩形,抽象状态用叠加椭圆,层级节点用线条+文字。
- 关于收费、价格、平台支持等具体信息,资料中暂未提供。