html-ppt-designer
HTML PPT 精致演示文稿设计器 - 将用户内容转化为精致的HTML演示文稿页面,LLM 智能设计优先,支持多种视觉风格、动效设计、色彩认知系统。触发词:PPT、演示文稿、HTML幻灯片、slide、presentation、做PPT、制作演示。
Source facts
- Repository
- andyhuo520/html-ppt-designer
- Last source activity
- February 14, 2026 at 16:06
- Detected SKILL.md language
- Chinese
- Stars
- 120
- Forks
- 13
Install options
The review-first prompt is selected by default. You can switch to a direct command or download a local copy.
Review the source files
Read SKILL.md and any companion files shown by SkillsMP before deciding whether to install.
Showing SKILL.md
SKILL.md
Source instructions · Read-only preview- name
- html-ppt-designer
- description
- HTML PPT 精致演示文稿设计器 - 将用户内容转化为精致的HTML演示文稿页面,LLM 智能设计优先,支持多种视觉风格、动效设计、色彩认知系统。触发词:PPT、演示文稿、HTML幻灯片、slide、presentation、做PPT、制作演示。
- allowed-tools
- Bash, Read, Write, Edit, Glob, Grep, AskUserQuestion
# HTML PPT Designer v5.2 / 智能演示文稿设计器
**版本**: 5.2
**架构**: **LLM 智能设计优先** + 本地模板 fallback + **原文配图提取** + Unsplash 配图 + 真翻页引擎 + 6 种动画 + **视频播客模式** + **内嵌字幕** + **国产 TTS** + **纯色设计** + **默认图标装饰** + **控制面板自动隐藏**
**更新日期**: 2026-02-13
---
## 🔧 环境变量配置(首次使用必读)
在使用本 Skill 的配图和 AI 功能前,需要配置相应的 API Key。
### 必需配置
| 功能 | 环境变量 | 申请地址 | 免费额度 |
|------|---------|---------|---------|
| **Unsplash 配图** | `UNSPLASH_ACCESS_KEY` | https://unsplash.com/developers | 50次/小时 |
| **AI 生成插图** | `ZENMUX_API_KEY` | https://zenmux.ai | 按用量计费 |
### 可选配置(视频导出)
| 功能 | 环境变量 | 申请地址 | 费用 |
|------|---------|---------|------|
| OpenAI TTS | `OPENAI_API_KEY` | https://platform.openai.com | ~$0.015/分钟 |
| 火山引擎 TTS | `VOLCENGINE_ACCESS_KEY` + `VOLCENGINE_SECRET_KEY` | https://console.volcengine.com | 按用量计费 |
| 智谱 AI TTS | `ZHIPUAI_API_KEY` | https://open.bigmodel.cn | 按用量计费 |
| Gemini 转录 | `GEMINI_API_KEY` | https://aistudio.google.com | ~$0.001/分钟 |
### 配置方法
**方法一:临时设置(当前终端会话)**
```bash
export UNSPLASH_ACCESS_KEY="your-unsplash-access-key"
export ZENMUX_API_KEY="your-zenmux-api-key"
```
**方法二:永久设置(添加到 shell 配置文件)**
```bash
# 编辑 ~/.zshrc 或 ~/.bashrc
echo 'export UNSPLASH_ACCESS_KEY="your-unsplash-access-key"' >> ~/.zshrc
echo 'export ZENMUX_API_KEY="your-zenmux-api-key"' >> ~/.zshrc
# 重新加载配置
source ~/.zshrc
```
### Unsplash API 申请步骤
1. 访问 https://unsplash.com/developers
2. 注册/登录 Unsplash 账号
3. 点击「New Application」创建新应用
4. 填写应用信息(用途可填:PPT 配图)
5. 创建后获取 **Access Key**
6. 设置环境变量:`export UNSPLASH_ACCESS_KEY="your-key"`
### ZENMUX API 申请步骤
1. 访问 https://zenmux.ai
2. 注册账号并登录
3. 在控制台获取 API Key
4. 设置环境变量:`export ZENMUX_API_KEY="your-key"`
---
## 🆕 v4.0 核心架构升级
### 设计理念转变
**旧架构(v3.x)**:预设 16 种固定模板 → 用户选择 → 填充内容
**新架构(v4.0)**:**LLM 分析内容 → 智能生成设计 → 动态创建 CSS**
### LLM 优先设计流程
```
用户内容
↓
LLM 分析(内容类型、情感基调、主题色彩、目标受众)
↓
LLM 生成:
├── 色彩方案(主色/辅助色/背景色/文字色)
├── 排版风格(字体组合/字号层级/间距系统)
├── 布局结构(封面/内容页/金句页/结尾页 各自的设计)
├── 视觉元素(装饰图形/分隔线/卡片样式)
└── 动效选择(推荐适合的翻页动画)
↓
生成完整 HTML(内嵌自定义 CSS)
↓
[失败时] → fallback 到本地预设模板
```
### 本地模板的新定位
| 场景 | 使用方式 |
|------|---------|
| 正常使用 | LLM 动态生成设计,不使用本地模板 |
| 网络问题 | LLM 无法响应时,fallback 到 16 种预设模板 |
| 用户指定 | 用户明确要求某种预设风格时使用 |
| 快速预览 | 需要快速生成时可选使用 |
---
## 🎨 LLM 智能设计系统
### 设计分析维度
LLM 在生成设计前会分析以下维度:
| 维度 | 分析内容 | 影响设计 |
|------|---------|---------|
| **内容类型** | 演讲/教程/报告/故事/数据/产品 | 整体风格方向 |
| **情感基调** | 严肃/活泼/专业/温暖/科技/艺术 | 色彩和字体选择 |
| **主题领域** | 科技/商业/教育/生活/艺术 | 配色和装饰元素 |
| **目标受众** | 高管/大众/学生/专业人士 | 信息密度和复杂度 |
| **使用场景** | 演讲/分享/汇报/营销 | 视觉冲击力程度 |
### 动态生成的设计元素
#### 1. 色彩方案
```css
/* LLM 根据内容生成 */
--primary: #XXXXXX; /* 主色 - 品牌感/情感基调 */
--primary-light: #XXXXXX; /* 主色浅版 - hover/强调 */
--secondary: #XXXXXX; /* 辅助色 - 对比/层次 */
--accent: #XXXXXX; /* 点缀色 - 吸引注意 */
--bg-page: #XXXXXX; /* 页面背景 */
--bg-card: #XXXXXX; /* 卡片背景 */
--text-heading: #XXXXXX; /* 标题文字 */
--text-body: #XXXXXX; /* 正文文字 */
--text-muted: #XXXXXX; /* 弱化文字 */
```
#### 2. 字体系统
```css
/* LLM 推荐字体组合 */
--font-heading: 'Font Name', fallback; /* 标题字体 */
--font-body: 'Font Name', fallback; /* 正文字体 */
--font-accent: 'Font Name', fallback; /* 强调字体(如数字、引用) */
/* 字号层级 */
--text-hero: XXpx; /* 封面大标题 */
--text-h1: XXpx; /* 页面标题 */
--text-h2: XXpx; /* 段落标题 */
--text-body: XXpx; /* 正文 */
--text-small: XXpx; /* 辅助文字 */
```
#### 3. 布局参数
```css
/* 间距系统 */
--spacing-xs: Xpx;
--spacing-sm: Xpx;
--spacing-md: Xpx;
--spacing-lg: Xpx;
--spacing-xl: Xpx;
/* 圆角 */
--radius: Xpx; /* 卡片圆角 */
--radius-sm: Xpx; /* 小元素圆角 */
/* 阴影 */
--shadow: ...; /* 卡片阴影 */
```
#### 4. 页面类型设计
每种页面类型都有独立的设计方案:
| 页面类型 | LLM 设计要点 |
|---------|-------------|
| **封面页** | 标题位置、副标题样式、装饰元素、背景处理 |
| **内容页** | 标题样式、正文排版、图文布局、信息层次 |
| **金句页** | 引号样式、文字大小、背景氛围、强调方式 |
| **结尾页** | 结束语设计、联系方式、行动号召 |
---
## 📋 完整工作流程
```
用户输入内容/URL/音视频
↓
[阶段零] 输入处理
├── 纯文本 → 直接进入阶段一
├── 网页 URL → fetch_webpage.py 提取正文 + **下载原始图片** → 进入阶段一
├── YouTube URL → transcribe_audio.py 下载+转录 → 进入阶段一
├── 小宇宙 URL → transcribe_audio.py 下载+转录 → 进入阶段一
└── 音频直链/文件 → transcribe_audio.py 转录 → 进入阶段一
↓
[阶段一] 内容解析
├── 提取标题、副标题、核心观点
├── 分析内容类型和情感基调
└── 拆分幻灯片页面
↓
[阶段二] 设计策略选择(AskUserQuestion)
│
├── D1 LLM 智能设计 ⭐ 推荐
│ └── LLM 根据内容自动生成最佳设计
│
├── D2 指定风格参考
│ └── 用户指定参考风格,LLM 在此基础上定制
│
└── D3 使用预设模板
└── 直接使用 16 种本地模板之一
↓
[阶段三] 输出模式选择(AskUserQuestion)★ 新增
│
├── M1 仅 HTML PPT(默认)
│ └── 标准页数,适合演讲/汇报
│
└── M2 视频播客模式 ⭐ 视频导出推荐
│
├── 内容增强策略:
│ ├── 每个主题拆分为 2-3 个子页面(避免单页停留过久)
│ ├── 增加数据卡片、关键数字、进度条
│ ├── 每页包含:标题 + 核心观点 + 数据/图表 + 引用
│ └── 页数增加 50-100%,内容密度提升
│
└── 配图方案推荐:
├── P1 Unsplash 氛围照片(封面/金句页)
├── P4 Excalidraw 技术图表(数据/流程页)
└── N2 信息图表(数据展示页)
↓
[阶段四] 详细配置(AskUserQuestion)
│
├── 4.1 页数密度(根据模式调整)
│ ├── M1 标准版:10-12 页
│ └── M2 增强版:18-25 页(自动拆分)
│
├── 4.2 配图方案
│ ├── P1 Unsplash 高质量照片
│ ├── P2 AI 生成插图
│ ├── P4 Excalidraw 技术图表 ⭐ 视频播客推荐
│ ├── N1 Iconify 图标方案
│ ├── N2 信息图表方案 ⭐ 视频播客推荐
│ └── N4 纯文字排版
│
└── 4.3 翻页动画
└── Fade / Cinematic / Zoom / Slide / Flip / Cut
↓
[阶段五] 内容增强(M2 视频播客模式专属)
│
├── 拆分长内容为多页
│ └── 原本 1 页 → 拆分为「概念页 + 数据页 + 案例页」
│
├── 添加视觉元素
│ ├── 数据卡片(大数字 + 说明)
│ ├── 时间线/流程图
│ ├── 对比表格
│ └── 引用框/金句框
│
└── 丰富讲解文字
└── 每页生成独立的 data-narration
↓
[阶段六] 配图获取
├── Unsplash 照片搜索
├── AI 生成插图(可选)
├── Excalidraw 技术图表
└── 或纯图标/几何装饰
↓
[阶段七] HTML 生成
├── LLM 生成完整 CSS 样式
├── 内嵌到 HTML 中
├── 添加翻页引擎
└── 生成最终文件(含 data-narration)
↓
[阶段八] 输出与预览
↓
[阶段九] 视频导出(可选,M2 模式强烈推荐)
├── 确认讲解文字(可编辑)
├── 选择配音服务(Edge TTS / OpenAI TTS)
├── 选择语音风格(云健/晓晓/其他)
├── 字幕配置
│ ├── 是否启用内嵌字幕(默认启用)
│ ├── 字幕样式:白字黑背景圆角
│ ├── 字体:PingFang SC(苹果平方)
│ └── 按句子分割,逐句显示,与音频同步
├── 音频驱动截图(每页时长 = 音频时长)
└── 输出 MP4 文件(含内嵌字幕)
```
---
## 🎬 视频播客模式详解
### 为什么需要视频播客模式?
**问题**:普通 PPT 转视频时,单页停留 30-50 秒,画面太单调
**解决**:
1. **内容拆分**:原本 1 页 → 拆分为 2-3 页
2. **视觉丰富**:增加数据卡片、图表、引用框
3. **节奏感**:每页 10-20 秒,翻页更频繁
### 内容拆分策略
| 原内容类型 | 拆分方案 | 示例 |
|-----------|---------|------|
| **概念介绍** | 概念页 + 案例页 + 总结页 | 「AI 原生代理公司」拆分为 3 页 |
| **数据展示** | 数据概览 + 详细数据 + 趋势分析 | 「市场数据」拆分为 3 页 |
| **方法步骤** | 概述页 + 每步骤独立页 | 「三步法」拆分为 4 页 |
| **对比分析** | 对比概览 + A 方案 + B 方案 + 结论 | 「方案对比」拆分为 4 页 |
### 视觉元素模板
**数据卡片**
```
┌─────────────────────────────────────┐
│ ████████████ $2.5万亿 │
│ ████████████ 每年政府欺诈损失 │
│ ████████████ │
│ 仅医保每年损失数百亿美元 │
└─────────────────────────────────────┘
```
**进度条/时间线**
```
┌─────●───────────────────────────────┐
│ 阶段1 → 阶段2 → 阶段3 │
│ ✓ 进行中 待完成 │
└─────────────────────────────────────┘
```
**引用框**
```
┌─────────────────────────────────────┐
│ "AI 原生公司现在可以比以往 │
│ 更快、更便宜、更有野心地构建。" │
│ — YC RFS │
└─────────────────────────────────────┘
```
### 视频模式字号规范(v5.1 新增)
**问题**:普通 HTML PPT 字号在视频导出后过小,大量留白,用户看不清。
**解决方案**:视频模式使用 1.5x 字号,减少边距,提高信息密度。
| 元素 | 普通模式 | 视频模式 | 说明 |
|------|---------|---------|------|
| 封面大标题 | 72px | **108px** | 确保视频封面冲击力 |
| 页面标题 | 42px | **64px** | 清晰可读 |
| 正文 | 20px | **32px** | 视频舒适阅读 |
| 引用文字 | 36px | **52px** | 金句突出 |
| 页边距 | 80-120px | **40-60px** | 减少留白 |
| 行高 | 1.8 | **2.0** | 视频舒适间距 |
**CSS 变量覆盖**:
```css
/* 视频模式专用 */
.video-mode {
--text-hero: 108px;
--text-h1: 64px;
--text-h2: 48px;
--text-body: 32px;
--text-small: 24px;
--spacing-page: 48px;
--line-height: 2.0;
}
```
### 视频播客模式 AskUserQuestion 模板
```json
{
"questions": [
{
"question": "请选择输出模式(决定内容密度和页数)",
"header": "输出模式",
"multiSelect": false,
"options": [
{
"label": "M1 仅 HTML PPT",
"description": "标准页数(10-12页),适合演讲、汇报、现场展示"
},
{
"label": "M2 视频播客模式 ⭐ 推荐",
"description": "增强页数(18-25页),内容拆分更细,每页10-20秒,适合视频导出"
}
]
}
]
}
```
---
## 🎬 视频导出系统(v3.2 内嵌字幕)
### 功能概述
将 HTML PPT 幻灯片转换为带配音和字幕的 MP4 视频,支持:
- **音频驱动时长**:每页展示时间 = 该页音频实际时长,100% 同步
- **内嵌字幕**:白字黑背景圆角样式,按句子分割逐句显示
- **字幕同步**:每句字幕时长按字数比例分配,与音频完美同步
- **自动截图**:使用 Playwright 高清捕获每页幻灯片
- **智能配音**:Edge TTS(免费)或 OpenAI TTS(高质量)
- **多语言支持**:中文 / 英文语音
### v3.2 核心改进
```
旧流程(v3.0):
每页 1 张截图 + 完整字幕 → 字幕不随音频滚动
新流程(v3.2):
讲解文字按句子分割 → 每句生成 1 张截图 → 字幕时长按字数分配 → 100% 同步滚动
```
### 字幕特性
| 特性 | 说明 |
|------|------|
| **样式** | 白色文字 + 半透明黑色背景 + 12px 圆角 |
| **字体** | PingFang SC(苹果平方),28px |
| **位置** | 底部居中,距离底部 60px |
| **同步方式** | 按句子分割,每句时长 = (该句字数 / 总字数) × 页面音频时长 |
| **最小显示** | 每句至少 1.5 秒 |
### 依赖安装
```bash
# 系统依赖
brew install ffmpeg
# Python 依赖
pip install playwright edge-tts
# 安装浏览器(首次使用)
playwright install chromium
# 如需使用 OpenAI TTS
pip install openai
```
### 脚本使用
```bash
# 基本用法 - Edge TTS(免费),默认启用字幕
python3 scripts/ppt_to_video.py presentation.html -o output.mp4
# 禁用字幕
python3 scripts/ppt_to_video.py presentation.html --no-subtitle -o output.mp4
# 使用 OpenAI TTS(需配置 OPENAI_API_KEY)
python3 scripts/ppt_to_video.py presentation.html --tts openai -o output.mp4
View on GitHubThis SKILL.md is very large, so SkillsMP previews the first section here. View on GitHub