Help us improve
Share bugs, ideas, or general feedback.
Share bugs, ideas, or general feedback.
Share bugs, ideas, or general feedback.
By FuQiang
Generate, edit, and publish 16:9 Feishu/Lark-style HTML slide decks from Apple Keynote and PowerPoint files, with options for fully editable or rasterized-fidelity output and publishing to Magic Page or slide library.
npx claudepluginhub fuqiang/feishu-deck-h5 --plugin feishu-deck-h5总控 skill for Feishu / Lark-style HTML decks. Use for 飞书风格 PPT, Lark deck, 汇报材料, 客户提案, h5 deck, 16:9 网页演示, HTML deck generation/editing/validation, source parsing, Magic Page/Miaobi/html-box publishing, and feishu-slide-library importing. Routes work to subskills; generation is DeckJSON/render-deck first, normally raw-first, with validation before handoff or publish. For real `.pptx`, use a PowerPoint/keynote workflow instead.
把 Apple Keynote(`.key`)演示文稿转成 `deck.json` + HTML deck:逐页遍历, 把每一页重建为绝对定位的 HTML——图片仍是 `<img>`、文本是可编辑的 HTML 文本、视频是 `<video>`。与 `feishu-deck-h5` skill 配合使用:本 skill 产出 `deck.json`,`feishu-deck-h5/deck-json/render-deck.py` 把它包装成带演示模 式 chrome(← → 翻页 / F 全屏 / 进度条 / 移动端滚动模式)的最终 HTML。 触发词:「把 Keynote 转成 HTML」、「import keynote」、「.key 转 deck」、 「.pptx 转 HTML」(先用 Keynote 打开 PPTX 另存为 .key 即可),或者用户给出 `.key` 文件路径 / Keynote 里已打开的文稿。 每一页的处理流程: 1. AppleScript 遍历该页所有 iWork 元素,输出 (类型, 位置, 尺寸, 文件名, 文本, 字体 / 字号 / 颜色)。 2. 图片的文件引用按 .key bundle 的 Data/ 目录解析:先精确前缀匹配; 对模糊的 "pasted-image.pdf" 类情况退回尺寸 / 长宽比匹配。 3. 每个非文本元素变成原始 (x, y, w, h) 处的 `<img>` / `<video>`; 每个文本变成带原字体 + 字号的真实 HTML 元素。 4. 该页以 `layout: "raw"` 形式写入 deck.json。 5. `feishu-deck-h5/deck-json/render-deck.py` 包装成带演示模式 chrome 的 HTML。 可接受的失真(不要因此阻断): · 自定义 Keynote 字体(鸿蒙 / 阿里巴巴普惠 / 方正兰亭)退回到 web-safe 中文字体栈(PingFang SC、Microsoft YaHei)。 · 1–2 个模糊的 pasted-image 文件可能匹配错源 —— 记录后继续。 · 母版背景渐变尚未解析(best-effort)。 · 动画 / 入场效果会被丢弃(有意为之 —— HTML 不需要)。
Convert an existing PowerPoint (.pptx) into an EDITABLE feishu-deck-h5 deck — a structured `canvas` deck.json that renders to a 16:9 present-mode HTML deck. STANDALONE skill that uses feishu-deck-h5 as its RENDER BACKEND (shells into its deck-json/render-deck.py; the final deck needs that skill's framework CSS/JS). feishu-deck-h5's parser also delegates .pptx import to this skill. Triggers: "把 PPT/PPTX 转成 deck/HTML/H5", "import pptx", ".pptx 转 deck", "把这份 PowerPoint 还原成网页/可编辑 deck", or when the user hands over a .pptx and wants it as an editable deck. Do NOT use for `.key` Keynote (use keynote-to-html), a from-scratch redesign (use feishu-deck-h5 directly), or producing a real .pptx. ONE pipeline: build_pptx.py = PURE CODE RECONSTRUCTION (python-pptx) → a `layout:"canvas"` deck.json of fully editable typed elements, rendered by render-deck.py. No extra deps (no LibreOffice / PyMuPDF). Decorative elements (gradients/glow/freeform/cropped images) are best-effort APPROXIMATE — the trade for full editability. (A LibreOffice/raster "hybrid" pipeline once existed; it was retired — see skills/_deprecated/.) See the SKILL.md body for deps, the lossy/approximation list, and placeholder + retired-flag (--raster/--full-raster are no-ops) behavior.
把 .pptx(或 Keynote 导出的 PPTX)转成「浏览 100% 保真 + 文字可编辑」的单文件 HTML deck。核心是**双背景架构**:浏览模式显示含文字的原始渲染图(字体/排版 与 PPT 完全一致),按 E 进入编辑模式才切到无文字底图 + 结构化可编辑文字框; 改过的文字框用「无文字底图的同位置裁片」做背景,精确遮住原图文字(无重影)。 自带演示导航、目录(缩略图点击跳转 / 多选拖拽排序 / 单页隐藏)、页码直跳、 本地保存与导出 HTML、视频(点播)与 GIF(自动循环) overlay、CJK 字体子集内嵌。 可选挂 FaaS 存储后端(--faas)实现「共享同一份、跨设备、改了即存」——专治妙笔 html-box 沙箱 iframe 禁用 localStorage 导致存不住的问题。 【网页翻译版】内置「可见真文字 + 浏览器翻译此页」模式(🌐 翻译模式 / body.xl):正文 平时是原图、一点翻译就显示可被浏览器/豆包整页翻译的真文字;配 --fit/--gfit autofit 防溢出、bg 懒加载防首屏黑屏。专为发布到飞书妙搭(顶层渲染、可浏览器翻译)而做。 触发词:「PPT 转可编辑 HTML」、「PPTX → 可编辑网页」、「PPT 转 HTML 但文字 要能改」、「双背景可编辑 deck」、「把这个 PPT 做成能在线改文字的网页」。 与 keynote-to-html 的区别:keynote-to-html 走 .key→iWA 纯结构化重建(文字直接 渲染,字体/排版会失真);本 skill 走 .pptx + 双背景,浏览是原图所以零失真, 结构化文字只在编辑态出现。两者可独立使用。 失真与边界(不要因此阻断): · 浏览模式 = 原始渲染图,零失真。 · 编辑模式文字用 CJK web 字体(子集化原字体最佳;否则回退 PingFang), 字形可能与原图有细微差异——这是编辑态,可接受。 · 自定义 Freeform 形状、复杂阴影/渐变、入场动画:浏览靠原图保真,无需重建。 · 媒体音轨探测决定 GIF(无声→自动循环) 还是视频(有声→点播)。
Share bugs, ideas, or general feedback.
Own this plugin?
Verify ownership to unlock analytics, metadata editing, and a verified badge.
Sign in to claimOwn this plugin?
Verify ownership to unlock analytics, metadata editing, and a verified badge.
Sign in to claimBased on adoption, maintenance, documentation, and repository signals. Not a security audit or endorsement.
Open-source deck builder. Drop in a PDF or PPTX, get back a polished interactive HTML deck. 5 type-correct deck types (pitch, sales, launch, keynote, all-hands), 8 templates, PDF and PPTX import, inline editing, multi-reviewer quality pipeline.
Build polished, self-contained HTML slide decks from any prompt — keyboard nav, swipe, fullscreen, brand theming. No Keynote or PowerPoint required.
Generate, extend, theme, and review HTML slide decks using a 25-component design system and multiple storytelling formats
Build beautiful 16:9 pitch decks with magic link auth, analytics, and a data room. Deploy on Vercel.
Professional presentation generator for HTML (with GSAP animations) and PPTX formats. Creates conference talks, pitch decks and tech presentations with curated style presets and validation.
End-to-end slide deck creation via RDIV workflow. Requires paperbanana plugin for image generation.
飞书风格的客户提案 deck —— 但产物是一份
.html,不是.pptx。 浏览器全屏即放映、单文件发 IM、文本编辑器改字、视觉与飞书官方母版逐像素对齐。 而且:版面质量不是"靠人盯",是一层无头浏览器逐页渲染、程序化卡死的硬门禁。
🔗 看样品 → examples/sample-deck.html
(双击在浏览器打开,左右键翻页)
让 AI 生成一份"看起来像设计师手搓、又能被程序证明没翻车"的飞书风格演示。 不是套模板,不是导出 PPT —— 是一条 数据驱动 + 自动校验 + 设计先行 的生产流水线。
绝大多数"让大模型直接吐 HTML/PPT"的方案,bug 都出在 CSS:字号飘了、卡片溢出了、
var(--x) 没定义导致整条 font: 声明被浏览器静默丢弃……
我们把这层全部收口。默认走 DeckJSON-first:你(或 Claude)只写一份结构化
deck.json,渲染器 render-deck.py 自动产出 index.html + texts.md + assets/。
python3 deck-json/render-deck.py runs/<ts>/output/deck.json runs/<ts>/output/ --inline
texts.md 文本侧文件,销售 / 客户用记事本改文案,不碰一行标记。deck.json 在 git 里 diff 干净 —— 比对两版提案是 JSON diff,不是 1500 行 HTML diff。</div> 那种事故。覆盖约 95% 的真实 deck;实在不规则的 hero 页用 layout:"raw" 单页 bespoke,仍在管线内、仍过校验。
别家是生成完祈祷它没歪。我们是:每次交付前 validate.py 作为 硬门禁(HARD GATE),
任何一条 error 就拒绝交付。校验分两层:
静态规则层(结构 / 排版 / 配色 / 层级 / CSS 变量 / 语言 …)—— 例如:
| 族 | 它卡什么 |
|---|---|
| 排版 R06 / R20 | 正文 ≥ 24px、chrome ≥ 16px,字号必须落在 {16,24,28,48} 四档阶梯上 |
| 白字 R-WHITE-TEXT | 深色页正文必须 #fff,挡掉投影仪上"灰字直接消失" |
| 层级 R-HIERARCHY | 卡片里的归属 / 来源信息字号必须 ≤ 正文,挡掉"附注比正文还大" |
| CSS 变量 R-CSSVAR | var(--x) 必须解析得到,挡掉静默丢声明的连环坑 |
| 语言 R-LANG | 中文模式下扫出夹带的英文副标 / 角标 |
视觉渲染层(Playwright,默认开启) —— 这才是杀手锏:它真的把每一页渲染出来量像素:
R-OVERFLOW 整页溢出 1920×1080R-OVERLAP 同级盒子边界相交(抓"某列糊到图例上")R-VIS-CARD-OVERFLOW 卡片内 overflow:hidden + 内容被裁 —— 抓那种肉眼一眼看不出、文字被悄悄切掉的密集三栏卡片R-VIS-TIER / HIER / ALIGN 计算字号、层级、等高对齐一句话:版面质量是被程序证明的,不是被人"觉得还行"放过的。
强制 DESIGN PHASE:拿到文案先出设计方案(版面、叙事结构、配色), 你确认后才动手;而且是一页一页设计→执行,不批量延迟堆到最后才发现整体翻车。 配套 11 套叙事模式(3+1 hero、verdict 判定矩阵、做/不做 boundary、北极星地图……), 直接把"飞书内部那套结构化论证"变成可复用的版面骨架。
PowerPoint .pptx | feishu-deck-h5 .html | |
|---|---|---|
| 文件大小 | 几十 MB 起步 | 24–360 KB |
| 需要 Office license | 是 | 否(任何浏览器都能开) |
| 飞书 / IM 转发 | 经常变形 | 单文件,对方双击即看 |
| AI 直接生成 | 很难做出像样的 | 天然适合(HTML 是 LLM 母语) |
| 视觉一致性 | 靠人盯 | 程序化硬门禁 + 无头浏览器逐页渲染校验 |
| 版本管理 / 协作 | git 看不了 diff | deck.json / HTML 标准 git diff,PR review 友好 |
| 产品截图 | 贴 PNG,缩放糊 | HTML 重建,任意缩放都清晰、字体跟 deck 一致 |
不是替代 PPT 的所有场景 —— 客户硬要 .pptx 还是给 .pptx。但售前 / 内训 / 产品提案
这类 多人迭代 + 多渠道分发 的场景,HTML 几乎完胜。
.thmx 母版抽出,色值 / 字号 / 留白都是母版坐标。ui-* 原语 —— .ui-window / .ui-msg / .ui-kpi / .ui-tabs …… 用 HTML 重建产品截图,而不是贴 PNG。.kpi-strip / .cta-box / .pullquote / .ui-wave …… 专门防止 AI 交付"骨架感"的寡淡 deck。audit_perf)。FEEDBACK.md / PROMPTS.md —— skill 自身可被持续打磨。13 种基础 layout + 3 种特殊(raw / replica / iframe-embed)= schema 内 15 种,覆盖一份典型客户提案从封面到封底的所有页型:
| Layout | 适合什么内容 |
|---|---|
| cover | 封面 —— 飞书母版花朵背景,标题在左、配图在右 |
| agenda | 议程 —— 4–8 项编号,双列堆叠 |
| section | 章节分隔 —— 巨型序号 + 章节标题 + 产品 pill |
| content-3up | 三大能力 / 三个支柱 —— 三卡并列 |
| content-2col | 一段叙事 + 配图 / UI 截图 —— 左文右图 |
| quote | 客户证言 / 金句 —— 居中大字 + 来源 |
| stats | 4-up KPI —— 四个并列数字 + 单位 + 来源 |
| big-stat | 单个英雄数字 —— 例如 "30 万人" + 旁边一段说明 |
| image-text | 全屏照片 + 左下角文字 —— 客户现场 / 门店 / 工厂 |
| table | 对比表 —— 飞书 vs 传统套件这种比较矩阵 |
| timeline | 横向时间轴 —— 4–6 个里程碑 |
| process | 流程步骤 —— 3–6 步带右指箭头 |
| end | 封底 —— 飞书品牌花朵背景 + CTA + 联系方式 |
raw / replica / iframe-embed | hero 高光页 / 母版复刻 / 嵌入原型,仍在管线内、仍过校验 |
完整规格 + 11 叙事模式 + UI 原语清单见 SKILL.md。
examples/sample-deck.html —— 12 张 slide 涵盖全部基础 layoutpreview-dark.html —— 设计令牌(颜色 / 字号 / 渐变)+ 组件 gallerytemplates/slide-recipes.html —— 每种 layout 的 reference 实现让 Claude 帮你装 + 帮你做,一句话:
"帮我安装 feishu-deck-h5 skill:https://github.com/FuQiang/feishu-deck-h5, 装完帮我做一份关于〔你的主题〕的 deck"
Claude 会读 INSTALL.md 走标准安装流程(plugin marketplace 或 install.sh), 然后按 SKILL.md 的规范、走 DeckJSON 流水线生成 deck。
| 内容 | 文档 |
|---|---|
| 安装路径(marketplace / install.sh / 手动 clone) | INSTALL.md |
| DeckJSON 流水线 + 13+3 layouts + 11 叙事模式 + UI/richness 原语 + 校验规则 | 总控 SKILL.md + subskills |
| 9-section 完整设计系统 | DESIGN.md |
| 业务规则 | BUSINESS_RULES.md |