跳到主要内容
Guizang PPT Skill · prolist
返回项目库查看仓库原始简介 AI-agent Skill for generating polished HTML slide decks: editorial magazine and Swiss layouts, image prompts, social covers, and a WebGL/low-power presentation runtime.
来自项目 README 项目解读 README
项目解读由 AI 根据历史资料整理,尚未经人工复核。仓库资料更新于 2026-09-08,与历史解读分开保留。
项目概览 Guizang PPT Skill(magazine-web-ppt)是由设计师歸藏(op7418)开源的一个 Claude Code / AI Agent Skill,用于生成单文件 HTML 横向翻页网页 PPT,视觉基调定位为“电子杂志 × 电子墨水”。它不是一个 PPT 编辑器,而是一套“人 × AI 协作做 PPT”的接口,把十年设计经验压缩成一个 SKILL.md 规则文件,让 AI 按照专业杂志排版规则自动生成网页幻灯片。项目发布于 2026-04-24,采用 MIT 协议,语言为 HTML 100%,拥有 396 Stars 和 60 Forks。核心工作流包括 6 问需求澄清、大纲与叙事弧规划、拷贝模板并选主题色、类名预检与主题节奏规划、挑选布局并填充内容、Checklist 自检。产物为单文件 index.html,浏览器直接打开,零依赖。
解决什么问题 传统 AI 生成 PPT 时,要么走 PowerPoint 路线(臃肿、格式错乱、字体丢失),要么走 HTML 路线但视觉粗糙。guizang-ppt-skill 走了第三条路——用 HTML 但严格执行杂志级排版规则,让 AI 生成的 PPT 达到设计师手调水平。传统 AI 做 PPT 最大的问题不是“技术做不到”,而是缺一套可执行的排版规则。AI 有能力写任何 HTML/CSS,但不知道“什么样的 PPT 好看”。具体痛点包括:方向不可控(AI 直接写 slide,后期发现结构错了)、样式崩坏(class 未定义导致全部 fallback)、节奏缺失(连续多页同色同结构)、字体混乱(标题/正文/元数据用同一种字体)、图片失控(奇葩比例、堆到底部、裁掉核心)、色彩灾难(用户自定义 hex 导致画面变丑)、协作困难(多人编辑静态 HTML 不现实)。
工作方式 核心思想是把杂志行业一百年沉淀的排版语言,压缩成一个 SKILL.md 规则文件,让 AI 按规则执行。工作流分为六步:Step 1 为 6 问需求澄清(受众、时长、素材、图片、主题色、硬约束);Step 2 为大纲与叙事弧规划(钩子→定调→主体→转折→收束);Step 3 为拷贝模板并选主题色(替换 :root 中 6 个 CSS 变量);Step 4 为类名预检与主题节奏规划(确认所有 class 在 template.html 中存在,规划每页 hero/light/dark 节奏);Step 5 为挑选布局并填充内容(从 10 种 layout 骨架中选、粘、改);Step 6 为 Checklist 自检(P0/P1/P2/P3 分级检查)。产物为单文件 index.html,浏览器直接打开,零依赖。
核心能力
三级字体分工:衬线=观点/标题,非衬线=信息/正文,等宽=元数据/页码
套主题色预设,禁止自定义,每套只暴露 6 个 CSS 变量
种页面布局骨架,固定网格比例(7:5、6:6、8:4 等)
WebGL 流体背景,仅在 hero 页透出(遮罩降至 12-16%)
横向翻页交互,支持键盘、滚轮、触屏、底部圆点、ESC 缩略图五种方式
图片约束系统:固定高度 height:Nvh、object-position:top center、标准比例、最小宽度 ≥1600px、命名规范
问澄清清单前置,拦截 80% 返工
类名预检机制,生成前必须对照 template.html
hero/non-hero 强制交替,连续 3 页同主题为 P0 错误
单文件 HTML 最终形态,无需构建工具、无需服务器
使用前需要了解
AI 整理 · 本地测试,未经人工复核;依据历史报告节选,不代表当前产品状态。
项目明确不适合以下场景:季度财报汇报(需要大量表格和精确数据)、培训课件(100+ 页,信息密度不够且无法做动画标注)、团队协作文档(多人同时编辑的需求无法满足)、需要品牌定制色(企业有严格的品牌色规范,5 套预设无法覆盖)、需要打印分发(网页 PPT 打印效果差)。此外,项目不适合数据密集型内容(大段表格、图表叠加不是它的强项),不适合多人协作(产物是静态 HTML),需要 Claude Code 环境(核心工作流依赖 AI Agent 执行,纯手工改 HTML 体验较差),主题色受限(只有 5 套预设,不允许自定义),图片管理需手动(图片准备和放置仍需人工操作),中文字体加载依赖 Google Fonts CDN,国内网络可能不稳定。单文件体积有限制,建议图片总量控制在 10MB 内。
简体中文 · 官方 原文
Guizang PPT Skill · 网页 PPT / 配图 / 封面
GitHub stars(请在原文查看)
License(请在原文查看)
Skill(请在原文查看)
HTML Deck(请在原文查看)
Claude Code(请在原文查看)
Codex(请在原文查看)
由真格 Token Grant 资助(请在原文查看)
360 安全龙虾金牌赞助(请在原文查看)
Kimi work 金牌赞助(请在原文查看)
Cola Skill 金牌赞助(请在原文查看)
🌏 English version: README.en.md
一个适配 Claude Code / Codex 等 Agent 环境的网页 PPT 技能,用于生成单文件 HTML 横向翻页 PPT 、PPT 配图和多平台封面,并内置完整的排练与演讲者模式。
内置两套视觉系统:
Style A: 电子杂志 × 电子墨水 。像 Monocle 贴上了代码,适合叙事、观点、分享、个人风格表达。
Style B: 瑞士国际主义 。网格至上、单一高饱和锚点色、直角、发丝线、极致字号对比,适合事实、产品、分析、方法论表达。
由 歸藏 在"一人公司:被 AI 折叠的组织"、"一种新的工作方式"等线下分享中沉淀而成,踩过的每一个坑都写进了 checklist.md。
赞助与支持信息见 SPONSORS.md 。
旧主题 · Style A 电子杂志风
新主题 · Style B 瑞士国际主义
30 秒开始
npx skills add https://github.com/op7418/guizang-ppt-skill --skill guizang-ppt-skill
也可以直接把这段话发给有 shell 权限的 AI Agent:
帮我安装 guizang-ppt-skill。请把 https://github.com/op7418/guizang-ppt-skill 克隆到 ~/.claude/skills/guizang-ppt-skill,安装完成后检查 SKILL.md、assets/、references/ 是否存在。
帮我更新 guizang-ppt-skill。请进入 ~/.claude/skills/guizang-ppt-skill 执行 git pull,然后告诉我当前最新 commit。
帮我基于这篇文章做一份瑞士风 PPT,控制在 7 页左右,需要 2-3 张配图。
帮我把这份 Markdown 做成杂志风演讲 PPT。
基于这份 PPT 的核心观点,生成一张公众号 21:9 头图。
把这张产品截图重新设计成适合 PPT 的 16:10 配图。
给这份 PPT 补齐演讲备注和每页计划时长,然后用演讲者模式帮我排练。
赞助与支持
在其他地方使用归藏 PPT Skill 除了 Claude Code / Codex,也可以在这些平台使用归藏 PPT Skill:
效果
🖋 双视觉系统 :电子杂志风负责叙事,瑞士风负责事实表达
📐 横向左右翻页 :键盘 ← → / 滚轮 / 触屏滑动 / 底部圆点 / ESC 索引
🧩 Style A 10 种布局 :封面、章节、数据大字报、图文、图片网格、Pipeline、对比等
🧱 Style B 22 种锁定版式 :Cover、Statement、KPI Tower、Loop Diagram、Duo Compare、Image Hero、Closing Manifesto 等
🎨 主题色预设 :Style A 5 套电子墨水主题,Style B 4 套瑞士高饱和锚点色
🖼 Codex 可选配图流程 :可用 GPT-Image 2.0 / GPT-M 2.0 生成纪实照片、信息图、流程图、系统关系图、UI 情景图,并按模板比例插入
📰 多平台封面 :可用同一套视觉规则生成公众号 21:9、公众号分享卡 1:1、小红书 3:4、视频号横版等封面
🎤 演讲者模式 :双窗口观众屏、当前页/下一页 16:9 预览、演讲备注、计时排练、自动翻页、激光笔、圈选和现场故障恢复
📴 低性能静态模式 :按 B 可关闭 WebGL / canvas 动画,让动态内容退回静态背景
📄 单文件 HTML :不需要构建、不需要服务器,浏览器直接打开
适合 / 不适合 ✅ 合适 :线下分享 / 行业内部讲话 / 私享会 / AI 产品发布 / demo day / 带强烈个人风格的演讲
❌ 不合适 :大段表格数据 / 培训课件(信息密度不够)/ 需要多人协作编辑(静态 HTML)
常见使用场景
为什么是 HTML PPT
更适合 Agent 生成和修改 :HTML / CSS 是文本,Agent 能直接读、改、验证。
表现力比 Markdown 更高 :可以做精细排版、空间定位、动画、交互和响应式封面。
交付更轻 :单文件 HTML 可以直接打开、演示、发送、截图,演讲者工具也随文件一起交付。
更容易做质量控制 :瑞士风可以用脚本校验版式、图片槽位、标题对齐、危险 SVG,并在可用时用 Playwright 后验测量超出、底部空白、nav 安全线和标题间距。
更适合视觉内容链路 :同一套主题能覆盖 PPT、配图、封面和截图再设计。
平台支持
安装
方式一:一行命令安装(推荐) npx skills add https://github.com/op7418/guizang-ppt-skill --skill guizang-ppt-skill
方式二:把下面这段话直接发给 AI
帮我安装 guizang-ppt-skill 这个 Claude Code skill。请按下面步骤做:
确保 ~/.claude/skills/ 目录存在(不存在就创建)
执行 git clone https://github.com/op7418/guizang-ppt-skill.git ~/.claude/skills/guizang-ppt-skill
验证:ls ~/.claude/skills/guizang-ppt-skill/ 应该看到 SKILL.md、assets/、references/ 三项
告诉我安装好了,之后我说"做一份杂志风 PPT"之类的话就会触发这个 skill
把这段话复制粘贴给 Claude Code / Cursor / 任何有 shell 权限的 AI Agent,它会自动完成安装。
方式三:手动命令行 git clone https://github.com/op7418/guizang-ppt-skill.git ~/.claude/skills/guizang-ppt-skill
触发方式 装好后,Claude Code 会在对话里自动发现并调用这个 skill。触发关键词:
"帮我做一份杂志风 PPT"
"帮我做一份瑞士风 PPT"
"生成一个 horizontal swipe deck"
"editorial magazine style presentation"
"electronic ink 风格演讲 slides"
"基于这篇文章做一张公众号 21:9 封面"
"基于这份 PPT 生成一张 1:1 分享卡"
"给这份 PPT 补齐演讲备注,并用演讲者模式帮我排练"
使用流程 Skill 本身是结构化工作流,Agent 会逐步引导:
选择风格 — Style A 电子杂志风,或 Style B 瑞士国际主义
需求澄清 — 7 问清单:风格、受众、时长、素材、图片/截图需求、主题色、硬约束
拷贝模板 — Style A 用 assets/template.html,Style B 用 assets/template-swiss.html
填充内容 — 先做主题节奏表,再从对应 layout 骨架里挑、粘、改文案
可选配图 — 在 Codex 中询问是否用 GPT-Image 2.0 / GPT-M 2.0 生成配图,再按页面比例插入
生成演讲备注 — 从大纲提取每页目的、讲述要点、转场和计划时长;用户没提供的信息不猜测
自检 — 对照 references/checklist.md,P0 级问题必须全过;瑞士风和演讲模式分别运行对应校验器
预览 — 浏览器直接打开
排练 / 演讲 — 按右下角 P 进入演讲者模式,检查观众屏同步并记录实际时长
迭代 — 根据排练结果调整内容、字号、高度和间距
演讲者模式 两套模板都内置同一套演讲者运行时。打开 deck 后,点击右下角 P 即可进入演讲者视图;浏览器会同时打开一个干净的观众屏。所有核心能力都在本地 HTML 和浏览器里完成,不依赖实时字幕、云端中继、手机遥控或 AI 教练服务。
演讲时能看到什么
当前页与下一页 :上下排列并始终保持 16:9,小屏时整页等比缩放,不裁切、不挤压文字
宫格选页 :在预览区原位切换总览,点选页面后立即回到双预览,观众屏同步跟随
结构化备注 :标题、本页目的、讲述要点和转场必填;互动、语气、翻页时机、备用方案和读音等信息只在大纲提供时显示
进度与状态 :显示当前页 / 总页数、完成百分比,以及观众屏的连接中、已同步、未同步、已冻结、未连接或弹窗被拦截状态
时间、排练与自动翻页
底栏分别显示已进行、本页和剩余 / 超时时间,按钮明确区分“开始计时 / 继续计时 / 重置计时”
排练模式记录每页实际时长和整场汇总,数据保存在本地浏览器,不会做 AI 评分
自动翻页默认关闭;只有大纲明确给出页面停留秒数,或用户在设置中开启全局间隔时才启用
打开宫格、设置、圈选工具,页面隐藏,或观众屏暂停 / 失去同步时,自动翻页会暂停
现场工具与故障恢复
激光笔、圈选和清除会同步到观众屏
一键黑屏、白屏,或冻结观众屏;恢复后自动追平演讲者当前页
观众窗口关闭或心跳超时后明确显示“未连接”,可随时点击“重新打开观众屏”
退出演讲时自动关闭观众窗口;浏览器不允许自关时,观众端显示“演示已结束”
演前检查覆盖弹窗、全屏、字体、图片 / 视频和 16:9 预览,并提醒人工确认 HDMI、转接器和投影仪
常用快捷键:← / → 翻页,Home / End 跳首页或尾页,G 宫格,L 激光笔,C 圈选,B / W 黑屏或白屏,F 冻结观众屏,? 查看完整快捷键。
让 Agent 生成或补齐演讲模式时,可以直接说:
根据这份大纲给每一页补齐演讲目的、讲述要点、转场和计划时长。没有提供的互动或现场信息不要猜,然后运行演讲模式校验器。
node scripts/validate-presenter-mode.mjs path/to/index.html
node scripts/validate-presenter-mode.mjs path/to/index.html --target-minutes 30
Style B 瑞士风 瑞士风是这次新增的结构化主题。它不是"换一套 CSS",而是一套更严格的版式系统。
22 个具名版式 :正文页只能从 S01 到 S22 中选择,不能临时发明页面结构
4 套锚点色 :克莱因蓝 IKB、柠檬黄、柠檬绿、安全橙
网格锁定 :16 列 grid、直角色块、1px 发丝线、无阴影、无渐变、无圆角
中文字号收敛 :全中文大标题需要降一档,避免占掉正文和图片空间
图文底对齐 :左文右图 / 左图右文场景优先让正文块与图片底部对齐,同时避开页脚翻页组件
图片槽位绑定 :图片必须进入模板预留的 data-image-slot,常见主图按 21:9 或 16:10 生成
强校验 :用脚本拦住居中标题、实验版式、SVG 内写字、图片脱离槽位等问题;可用 Playwright 时还会量化真实渲染后的 overflow、bottom whitespace、title gap
node scripts/validate-swiss-deck.mjs path/to/index.html
Codex 配图能力 在 Codex 环境中,完成 deck 初稿后可以主动询问用户是否需要生成配图。用户确认后,再询问图片类型或风格,常用类型包括:
人文纪实照片:富士 / 徕卡感的真实场景,增加人文表现力
信息图 / 流程图 / 对比图 / 系统关系图:用于解释无法用实拍照片说明的概念
截图美化 / 截图再设计:原始截图优先用内置背景资产做 CleanShot X 式背景画布适配;需要重构时再生成 UI 情景图
数据大字报 / 数据图表:把关键数字做成可直接插入 PPT 的视觉素材
多图拼贴:用于极宽图片槽位,避免把三张 16:9 图片硬塞进三列
图片是 PPT 中的嵌入素材,不要自带页脚、页底、标题、角标、页码或装饰边框
图片语言跟随 deck 语言:中文 deck 的信息图用中文标签,英文 deck 用英文标签
图片比例必须先匹配落位:瑞士风主图常用 21:9,通用主图常用 16:9 / 16:10,截图再设计常用 16:10,多图网格统一高度
用户截图需要保真时,先读 references/screenshot-framing.md,用 assets/screenshot-backgrounds/ 内置背景 + 程序化缩放/留边/对齐处理,不要默认重画截图内容
封面生成 这个 Skill 也可以基于文章或 PPT 核心观点生成平台封面。典型规格:
公众号头图 :21:9,主标题优先,右侧或边缘保留视觉锚点
公众号分享卡 :1:1,与头图共用主题色、关键词和视觉元素
小红书封面 / 轮播 :3:4,大标题优先,多张时统一字号和视觉节奏
视频号 / 横版封面 :16:9,适合标题 + 副标题 + 单一视觉焦点
封面原则和 PPT 一样:只用少量关键词,视觉重心落在大标题上,不要把正文堆满。
示例请求 复制下面任意一条给 Agent,再附上你的文章、Markdown 或素材文件:
帮我基于这篇文章生成一份 8 页左右的瑞士风 PPT,需要 3 张配图,图片比例跟模板槽位匹配。
帮我把这个产品分析文档做成电子杂志风 PPT,重点突出观点和叙事节奏。
基于这份 PPT 的主题,做两张封面:公众号 21:9 头图和 1:1 分享卡,视觉保持一致。
把这些产品截图重新设计成统一的 16:10 PPT 配图,保留关键信息,不要画页脚和标题。
目录结构 guizang-ppt-skill/
├── SKILL.md ← Skill 主文件:工作流、原则、常见错误
├── README.md ← 本文件
├── assets/
│ ├── template.html ← Style A 电子杂志风模板
│ ├── template-swiss.html ← Style B 瑞士国际主义模板
│ └── screenshot-backgrounds/ ← 截图美化内置背景(WebP):style-a 5 套 / style-b 4 套
├── scripts/
│ ├── validate-swiss-deck.mjs ← 瑞士风版式校验器
│ ├── validate-presenter-mode.mjs ← 演讲备注、时长和运行时校验器
│ └── check-presenter-runtime-sync.mjs ← 两套模板演讲者运行时防漂移检查
└── references/
├── components.md ← 组件手册(字体、色、网格、图标、callout、stat、pipeline)
├── layouts.md ← 10 种页面布局骨架(可直接粘贴)
├── layouts-swiss.md ← 22 种瑞士风锁定版式
├── swiss-layout-lock.md ← 瑞士风还原度和版式硬约束
├── themes.md ← 5 套主题色预设(只能选不能自定义)
├── themes-swiss.md ← 4 套瑞士风锚点色
├── image-prompts.md ← GPT-Image 2.0 / GPT-M 2.0 配图类型、比例和基础提示词
├── screenshot-framing.md ← CleanShot X 式截图适配语义
├── presenter-mode.md ← 演讲备注契约、排练、观众屏与现场工具说明
└── checklist.md ← 质量检查清单(P0 / P1 / P2 / P3 分级)
主题色预设 从 references/themes.md 里选一套——不允许自定义 hex 值 ,保护美学比给自由更重要。
Style A 电子杂志主题 切换主题只需替换 template.html 开头 :root{} 里的 6 行变量,其他 CSS 全走 var(--...)。
Style B 瑞士主题 瑞士风从 references/themes-swiss.md 里选一套,同样不允许自定义 hex 值 。
如果用户说"瑞士风 PPT"但没有指定颜色,默认推荐克莱因蓝 IKB。
核心设计原则
克制优于炫技 — WebGL 背景只在 hero 页透出
结构优于装饰 — 信息靠字号 + 字体对比 + 网格留白,不用阴影和浮动卡片
图片是第一公民 — 图片要对齐正文内容区,比例稳定,只裁底部,顶部和左右完整
配图只做素材 — 生成图只保留核心照片 / 图表 / UI,不要把 PPT 页脚、标题和角标画进图片里
节奏靠 hero 页 — hero / non-hero 交替,才不累眼睛
低性能可退场 — 按 B 能切换到静态模式,动态效果不能成为阅读负担
术语统一 — Skills 就是 Skills,不中英混译
瑞士风必须守版式 — Style B 优先还原原始 22P 版式,不要为了"多样"发明不存在的页面
视觉参考
Monocle 杂志的版式
YC Garry Tan "Thin Harness, Fat Skills"
Massimo Vignelli / Helvetica Forever / 瑞士国际主义网格系统
歸藏线下分享 PPT 系列
Roadmap
补充更多真实案例和可打开的 HTML deck 示例
扩展封面规格,覆盖更多内容平台
增加更多瑞士风版式校验规则
优化截图再设计和信息图生成工作流
整理 WorkBuddy 等平台上架版本
增加更多主题包,但继续限制自定义颜色
FAQ 可以导出 PPTX 吗?
当前核心交付是 HTML。你可以用浏览器演示、截图或录屏。如果需要 PPTX,建议把 HTML 页面作为视觉稿再转换,但这不是当前主流程。
为什么不允许自定义颜色?
这个 Skill 的重点是稳定产出。自由选色很容易破坏整体风格,所以只允许从预设主题里选。
我能加自己的版式吗?
可以。Style A 可以在 references/layouts.md 里扩展;Style B 更严格,需要同步更新 template-swiss.html、layouts-swiss.md、swiss-layout-lock.md 和校验器。
Codex 配图是必须的吗?
不是。没有配图也能生成 PPT。配图流程只在需要照片、信息图、UI 情景图或封面时使用。
演讲者模式需要联网或额外服务吗?
不需要。双窗口同步、备注、计时、排练、自动翻页和标注都在本地浏览器完成。它不会提供实时字幕、手机遥控或 AI 排练评分。
为什么关掉观众窗口后显示“未连接”?
演讲者端会通过观众屏确认和心跳判断软件链路。窗口关闭或心跳超时会显示“未连接”,点击“重新打开观众屏”即可恢复。浏览器无法判断 HDMI 或投影仪线缆是否真的接通,现场仍需目视确认。
怎么更新到最新版?
重新运行安装命令,或在本地 skill 目录执行 git pull。
贡献 Bug、排版问题、新布局需求——欢迎开 Issue 或 PR。改动请优先:
在 template.html 里补类,不要让 layouts.md 使用未定义的类
在 template-swiss.html 里补类时,同步更新 layouts-swiss.md 和 swiss-layout-lock.md
瑞士风新增规则后,同步更新 scripts/validate-swiss-deck.mjs
演讲者运行时必须同时更新两套模板,并运行 scripts/check-presenter-runtime-sync.mjs;CI 会拦截两份模板的 CSS / JavaScript 漂移
演讲备注或现场行为变化时,同步更新 references/presenter-mode.md、references/checklist.md 和 scripts/validate-presenter-mode.mjs
把踩过的坑写到 checklist.md 对应的 P0 / P1 / P2 / P3 级别
新主题色进 themes.md 并给出适合的场景
License 09.08