1
0
Эх сурвалжийг харах

SKILL.md 固化 deck 概览方法:默认用 deck_index.html 两种自适应概览(网格60%/画廊40%)、别重写概览逻辑、画廊先跑 gen_deck_thumbs.mjs

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
alchaincyf 2 долоо хоног өмнө
parent
commit
55ff7cc03e
1 өөрчлөгдсөн 4 нэмэгдсэн , 3 устгасан
  1. 4 3
      SKILL.md

+ 4 - 3
SKILL.md

@@ -522,7 +522,7 @@ Screen 组件接 callback props(`onTabChange`、`onOpen`、`onClose`、`onTogg
 **固定尺寸内容**(幻灯片/视频)必须自己实现JS缩放,用auto-scale + letterboxing。
 
 **幻灯片架构选型(必先决定)**:
-- 🔴 **默认且强烈推荐:多文件 + 概览墙**(几乎所有 PPT——培训/路演/科普/课件/汇报)→ 每页独立 HTML + `assets/deck_index.html` 拼接器。**这是 PPT 的默认交付形态**:自带 **3D 概览墙**(打开先看全局再逐页讲)+ 自适应缩放 + 统一页码
+- 🔴 **默认且强烈推荐:多文件 + 概览墙**(几乎所有 PPT——培训/路演/科普/课件/汇报)→ 每页独立 HTML + `assets/deck_index.html` 拼接器。**这是 PPT 的默认交付形态**:自带**两种自适应 3D 概览**(网格 iframe / 无限画廊图片,按秒数 60/40 随机)+ 任意页数自适应(少页倾斜居中、多页舒适大卡滚动)+ 统一页码。**直接用,别重写概览**(倾斜/点击命中/裁切三个坑已内建解决,见 slide-decks.md)
 - **单文件**(仅 ≤5 页极简 pitch、且明确不需要概览墙、或需跨页共享 JS 状态)→ `assets/deck_stage.js`。
 - 🛑 **不要默认选单文件而绕过概览墙**——北大 13 页 deck 实测踩坑:选了单文件 = 丢了概览墙,违背 PPT 默认交付形态。选单文件前先确认「这真的是 ≤5 页、且不需要概览墙」。
 
@@ -534,7 +534,8 @@ Screen 组件接 callback props(`onTabChange`、`onOpen`、`onClose`、`onTogg
 
 | 文件 | 何时用 | 提供 |
 |------|--------|------|
-| `deck_index.html` | **幻灯片的默认基础产物**(不管最终出 PDF 还是 PPTX,HTML 聚合版永远先做) | iframe拼接 + 键盘导航 + scale + 计数器 + 打印合并,每页独立HTML免CSS串扰。用法:复制为 `index.html`、编辑 MANIFEST 列出所有页、浏览器打开即成演示版 |
+| `deck_index.html` | **幻灯片的默认基础产物**(不管最终出 PDF 还是 PPTX,HTML 聚合版永远先做) | **直接复制、不要重写其概览逻辑**。自带**两种自适应概览**(打开按秒数随机:网格 iframe 60% / 无限画廊图片 40%)+ 键盘翻页 + scale + 计数器 + 打印合并,每页独立 HTML 免 CSS 串扰,点任意卡片进演示。用法:复制为 `index.html`、编辑 MANIFEST(每项 `{file,label}`;**要用画廊模式则加 `thumb` 字段并先跑 `scripts/gen_deck_thumbs.mjs` 生成缩略图**,否则画廊回退 iframe 会卡)。⚠️ 概览墙已内建解决「任意页数自适应 / 卡片点击命中 / 倾斜不裁切」三个坑——**别自己重写倾斜或网格逻辑**,要改先读 `references/slide-decks.md` 的三条硬约束 |
+| `scripts/gen_deck_thumbs.mjs` | **给无限画廊概览生成缩略图**(网格 iframe 模式不需要)| playwright 截每页 + sharp 降采样 1600px JPEG:`npm i playwright sharp && node gen_deck_thumbs.mjs --slides slides --out thumbs`,再给 MANIFEST 每项加 `thumb`。分辨率别 <1000px 否则 hover 发虚 |
 | `deck_stage.js` | 做幻灯片(单文件架构,≤10页) | web component:auto-scale + 键盘导航 + slide counter + localStorage + speaker notes ⚠️ **script 必须放在 `</deck-stage>` 之后,section 的 `display: flex` 必须写到 `.active` 上**,详见 `references/slide-decks.md` 的两个硬约束 |
 | `scripts/export_deck_pdf.mjs` | **HTML→PDF 导出(多文件架构)** · 每页独立 HTML 文件,playwright 逐个 `page.pdf()` → pdf-lib 合并。文字保留矢量可搜。依赖 `playwright pdf-lib` |
 | `scripts/export_deck_stage_pdf.mjs` | **HTML→PDF 导出(单文件 deck-stage 架构专用)** · 2026-04-20 新增。处理 shadow DOM slot 导致的「只出 1 页」、absolute 子元素溢出等坑。详见 `references/slide-decks.md` 末节。依赖 `playwright` |
@@ -558,7 +559,7 @@ Screen 组件接 callback props(`onTabChange`、`onOpen`、`onClose`、`onTogg
 | 开工前问问题、定方向 | `references/workflow.md` |
 | 反AI slop、内容规范、scale | `references/content-guidelines.md` |
 | React+Babel项目setup | `references/react-setup.md` |
-| 做幻灯片 | `references/slide-decks.md` + `assets/deck_stage.js` |
+| 做幻灯片 | `references/slide-decks.md` + `assets/deck_index.html`(默认多文件概览墙)+ `scripts/gen_deck_thumbs.mjs`(画廊缩略图)+ `assets/deck_stage.js`(仅 ≤5 页单文件) |
 | 导出可编辑 PPTX(html2pptx 4 条硬约束) | `references/editable-pptx.md` + `scripts/html2pptx.js` |
 | 做动画/motion(**先读 pitfalls**)| `references/animation-pitfalls.md` + `references/animations.md` + `assets/animations.jsx` |
 | **动画的正向设计语法**(Anthropic 级叙事/运动/节奏/表达风格)| `references/animation-best-practices.md`(5 段叙事+Expo easing+运动语言 8 条+3 种场景配方)|