Install
openclaw skills install @liuyuming0823/ym-html-deck-builder把主题或大纲变成可翻页的PPT式HTML幻灯片,键盘翻页带进度条。 当用户提到「做个PPT」「生成幻灯片」「HTML演示文稿」「翻页课件」时使用。
openclaw skills install @liuyuming0823/ym-html-deck-builder把一份 Markdown 大纲(或对话里给的主题)渲染成单文件、可全屏演示的 HTML 幻灯片。不联网、不依赖任何第三方库,双击即可在浏览器全屏放映,键盘翻页并带底部进度条与页码。
templates/deck-outline.md 帮用户整理成大纲再渲染deck.html,同名会覆盖| 项 | 必需 | 说明 |
|---|---|---|
| 大纲文件 | 必需(或对话里给主题) | Markdown,# 起新页、## 为章节页、### 及以下为内容页,- 起要点 |
| 封面标题 | 可选 | 用 --title 覆盖首页标题;缺省取大纲第一页标题 |
| 风格 | 可选 | --theme light(默认)或 --theme dark |
| 页数上限 | 可选 | --limit N,超限只在控制台警告,不截断 |
标题层级直接决定页面样式,对应关系如下:
# 一级标题 → 封面页 / 结尾页,居中大标题,适合放主题与致谢## 二级标题 → 章节页,居中强调,用于把演示分成几大块### 三级及以下 → 内容页,左对齐,标题下方是要点或段落缺失处理:
templates/deck-outline.md 的模板请用户补,或把对话里的主题先落成大纲(例如用户说「讲讲我们上季度的增长」,就先拟 # 上季度增长复盘 + 几页 ### 要点)# 开头 → 自动作为封面页处理,标题取该段文字,避免首屏空白整理大纲 — 让用户给出主题或现有要点,按 templates/deck-outline.md 写成 # 封面页 / ## 章节页 / ### 内容页 / # 结尾页 结构,要点用 - 列。
渲染 — 在技能目录下执行:
python scripts/build_deck.py outline.md --title "季度复盘" --theme dark
仅要浅色主题可省略 --theme;想限制页数加 --limit 20。脚本读取大纲后写出 deck.html 并打印「已生成 deck.html,共 N 页」。
打开检查 — 双击 deck.html 用浏览器打开,按下面的验收清单逐项验证键盘与进度条。
交付 — 把 deck.html 交给用户;可一并说明 ←/→、空格、PgUp/PgDn、Home/End、Esc 目录、F 全屏等按键。
下面是一份可直接渲染的 5 页大纲(保存为 outline.md,UTF-8):
# 上季度增长复盘
## 章节:做了什么
### 关键动作
- 上线会员体系,新增付费用户 1.2 万
- 优化首屏,耗时下降 40%
### 结果
- 月活环比增长 18%
- 留存提升 5 个百分点
## 章节:下一步
### 重点
- 推进多端组件统一
- 建立自动化回归基线
# 谢谢 · 欢迎提问
渲染命令:
python scripts/build_deck.py outline.md --title "上季度增长复盘" --theme dark
生成后首页为封面、两个 ## 为章节页、### 为内容页、末页为结尾页。
单个自包含 HTML 文件 deck.html:
#)为封面样式(居中大标题),## 为章节页样式(居中强调标题),其余为内容页(标题 + 要点/段落)Esc 弹出目录浮层,列出所有页标题,点击跳转到对应页light / dark 两套主题,由 html 元素的 data-theme 属性切换.pptx / PDF(后续版本考虑)ym-report-slide-gen 面向「向领导汇报」,强制结论先行 + 数据表格 + 页数限时,输入是四类素材而非自由大纲。ym-training-courseware 面向内训讲师,输出带左侧章节导航与课堂提问页,结构由课程设计表驱动。中文显示成方块或宋体 — 现象:deck.html 在个别机器上中文变方块、或整体掉成衬线宋体。原因:生成机与演示机字体不一致,CSS 只写单一字体名时缺失即回退到浏览器默认。规避:模板已内置回退栈 Microsoft YaHei → PingFang SC → Hiragino Sans GB → Heiti SC → WenQuanYi Micro Hei → sans-serif(Windows / macOS / Linux 各有命中),最后必须以 sans-serif 收尾;缺字体的表现是样式突然变宋体而非报错,演示机优先检查是否装了「微软雅黑」。
Windows 下读文件乱码(GBK) — 现象:中文大纲渲染成乱码或报 UnicodeDecodeError。原因:Python 在 Windows 默认用系统编码(常是 GBK)读文本。规避:脚本一律 open(path, encoding="utf-8") 读、以 utf-8 写,用户大纲也必须保存为 UTF-8;在编辑器里存盘时确认编码为 UTF-8。
全屏按键 F 无效 — 现象:按 F 没进入全屏。原因:浏览器全屏 API(requestFullscreen)只在 https:// 或 localhost 下允许,直接双击用 file:// 打开会被拦截。规避:脚本已做降级——捕获异常后仅在控制台提示,不影响翻页;用户可用浏览器自带全屏(F11 / 右上角菜单)代替。
中文字体回退缺失导致方框 — 现象:某些系统字体栈只写 sans-serif,中文回退到豆腐块。原因:未列出中文优先字体。规避:font-family 写全栈——"Microsoft YaHei","PingFang SC","Hiragino Sans GB","Heiti SC","WenQuanYi Micro Hei",sans-serif,覆盖 Windows / macOS / Linux。
打印或导出 PDF 被分页截断 — 现象:浏览器打印时一页 HTML 被拆成多张纸。原因:幻灯片用绝对定位铺满视口,打印分页会切断。规避:建议演示用放映而非打印;若必须打印,先用浏览器的「打印 → 背景图形」并逐页 Esc 定位后再打印,或后续用专用导出脚本。
标题级别误用导致样式不对 — 现象:章节页没居中强调、封面不像封面。原因:把章节页写成 #、内容页写成 ##。规避:严格按 # 封面 / ## 章节 / ### 内容分层;脚本按 # 个数判定样式。
要点过长挤出版面 — 现象:一页要点超出屏幕被截断。原因:单页塞了过多文字。规避:每页要点控制在 5 条内、每条不超过一行半;过长内容拆成多页或下沉到段落。
# 封面页、## 章节页、若干 ### 内容页、# 结尾页)→ ←/→、空格、PgUp/PgDn 翻页全部有效;进度条随页推进;Home/End 跳首末页;Esc 目录跳转正确;页码实时更新。data-theme 切换、配色变量生效。--limit 设小于实际页数 → 控制台提示超限但不截断,文件仍可放映。deck.html。scripts/build_deck.py — 主脚本,读大纲渲染成单文件 deck.htmlreferences/html-patterns.md — 翻页 JS 实现模式(键盘事件表、进度条计算、目录浮层)与两套主题 CSS 变量约定templates/deck-outline.md — 大纲文件模板(封面页 / 章节页 / 内容页 / 结尾页写法说明)