presentation
演讲脚本 + PPT 一键生成器。输入主题自动生成演讲稿和可播放的 HTML 幻灯片(支持点击/自动播放、键盘控制、导出 PDF)。使用 awesome-design-md 62 种品牌级设计风格。触发词:"/ppt"、"做PPT"、"演讲稿"、"presentation"、"幻灯片"、"做个演示"
소스 정보
- 저장소
- OrangeViolin/presentation-skill
- 최근 소스 활동
- 2026년 4월 11일 04:46
- 감지된 SKILL.md 언어
- 중국어
- 스타
- 29
- 포크
- 3
설치 방법
기본적으로 소스를 먼저 확인하는 Prompt가 선택됩니다. 직접 명령으로 전환하거나 로컬 사본을 다운로드할 수도 있습니다.
소스 파일 검토
설치 여부를 결정하기 전에 SKILL.md와 SkillsMP에 표시된 보조 파일을 읽어 보세요.
SKILL.md 표시 중
SKILL.md
소스 지침 · 읽기 전용 미리보기- name
- presentation
- description
- 演讲脚本 + PPT 一键生成器。输入主题自动生成演讲稿和可播放的 HTML 幻灯片(支持点击/自动播放、键盘控制、导出 PDF)。使用 awesome-design-md 62 种品牌级设计风格。触发词:"/ppt"、"做PPT"、"演讲稿"、"presentation"、"幻灯片"、"做个演示"
# Presentation — 演讲脚本 + PPT 一键生成
输入一个主题,自动生成演讲脚本和品牌级设计质感的 HTML 幻灯片。支持 62 种世界级品牌设计风格,一键切换。
## 触发词
- "/ppt"
- "做PPT"
- "做个PPT"
- "演讲稿"
- "presentation"
- "幻灯片"
- "做个演示"
- "演示文稿"
## 输入
| 参数 | 必须 | 说明 |
|------|------|------|
| **主题** | 是 | 演讲/演示的主题 |
| **风格** | 否 | 设计风格名称(不指定则引导选择) |
| **时长** | 否 | 目标演讲时长,默认 10 分钟 |
| **语言** | 否 | 脚本语言,默认中文 |
| **页数** | 否 | 幻灯片页数,默认根据时长自动计算(约 1 页/分钟) |
## 工作流程
```
引导选风格 → 生成演讲脚本 → 设计幻灯片 → 输出 HTML → 浏览器预览
```
---
### Step 1:引导用户选择设计风格
如果用户未指定风格,展示风格选择菜单。按场景分类推荐:
```
🎨 请选择你喜欢的 PPT 设计风格:
━━━ 科技 / AI ━━━
1. claude — 温暖陶土色调,学术优雅
2. vercel — 极简黑白,Geist 字体
3. linear — 超精简紫色调,专业感
4. stripe — 标志性紫色渐变,精致
5. nvidia — 绿黑能量感,技术力量
6. spacex — 纯黑白未来主义
━━━ 商务 / 企业 ━━━
7. apple — 苹果级留白,极致优雅
8. notion — 温暖极简,知识感
9. ibm — 企业级蓝色系统
10. superhuman — 高端暗色,键盘优先
11. hashicorp — 企业级黑白清洁
━━━ 创意 / 设计 ━━━
12. figma — 多彩活泼,专业中带趣味
13. framer — 大胆黑蓝,运动感
14. airbnb — 温暖珊瑚色,摄影驱动
15. spotify — 鲜绿暗色,大胆排版
16. nike — 黑白对比,全大写 Futura
━━━ 金融 / 数据 ━━━
17. coinbase — 信赖蓝,机构感
18. revolut — 暗色渐变卡片,金融精确
19. binance — 币安黄+黑,交易桌紧迫感
━━━ 汽车 / 奢华 ━━━
20. ferrari — 明暗对比,法拉利红点缀
21. tesla — 极简摄影,激进减法
22. lamborghini — 纯黑+金色,奢华感
23. bmw — 暗色精密,德式工程美学
输入编号或名称即可,也可以说"帮我选"让我根据主题推荐。
```
**智能推荐**:如果用户说"帮我选",根据主题自动匹配:
- 技术分享 → vercel / linear / claude
- 产品发布 → apple / stripe / framer
- 商业提案 → notion / ibm / superhuman
- 创意展示 → figma / airbnb / spotify
- 数据报告 → coinbase / posthog / sentry
- 教育培训 → claude / notion / mintlify
### Step 2:获取设计规范
根据用户选择的风格,从 awesome-design-md 仓库获取对应的 DESIGN.md:
```
https://raw.githubusercontent.com/VoltAgent/awesome-design-md/main/designs/{slug}/DESIGN.md
```
从 DESIGN.md 中提取以下关键设计变量:
| 要素 | 用途 |
|------|------|
| **配色系统** | CSS 变量定义(primary, accent, surface, text 等) |
| **字体层级** | 标题/正文/标注的 font-family, size, weight, line-height |
| **阴影系统** | 卡片/按钮的 box-shadow 层级 |
| **圆角规范** | border-radius 体系 |
| **间距规范** | spacing scale |
### Step 3:生成演讲脚本
根据主题和时长,生成结构化演讲脚本:
```markdown
# 演讲脚本:{主题}
预计时长:{N} 分钟
幻灯片数:{M} 页
---
## 第 1 页 — 开场(封面)
**幻灯片内容**:标题 + 副标题 + 演讲者
**演讲词**:
> (此处是完整的口语化演讲词,自然、有感染力,不是干巴巴的要点罗列)
**时长**:1 分钟
**提示**:[开场节奏建议、肢体语言提示]
---
## 第 2 页 — 问题引入
**幻灯片内容**:一个引人思考的问题/数据
**演讲词**:
> ...
...以此类推
```
**脚本质量要求**:
- 演讲词必须是**完整的口语句子**,不是关键词列表
- 开头要有**钩子**(故事/数据/提问),不要自我介绍开场
- 每页有**一个核心观点**,不堆砌
- 转场自然,页与页之间有过渡句
- 结尾有**行动号召**(CTA)
### Step 4:生成 HTML 幻灯片
生成一个**单文件** HTML,包含完整的幻灯片播放器。
#### 4.1 整体结构
```html
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>{演讲标题}</title>
<!-- Google Fonts(根据 DESIGN.md 指定的字体) -->
<link href="https://fonts.googleapis.com/css2?family=..." rel="stylesheet">
<style>
/* === 设计系统变量(来自 DESIGN.md) === */
:root { ... }
/* === 幻灯片引擎样式 === */
/* === 幻灯片内容样式 === */
/* === 控制栏样式 === */
/* === 打印/PDF 样式 === */
</style>
</head>
<body>
<!-- 幻灯片容器 -->
<div class="slides-container">
<div class="slide active" data-index="0">...</div>
<div class="slide" data-index="1">...</div>
...
</div>
<!-- 控制栏 -->
<div class="controls">...</div>
<!-- 演讲者备注面板 -->
<div class="speaker-notes">...</div>
<script>/* 播放引擎 */</script>
</body>
</html>
```
#### 4.2 幻灯片引擎(JavaScript)
必须实现以下功能:
**导航控制**:
```javascript
// 键盘控制
document.addEventListener('keydown', (e) => {
switch(e.key) {
case 'ArrowRight':
case 'ArrowDown':
case ' ': // 空格
case 'Enter':
nextSlide(); break;
case 'ArrowLeft':
case 'ArrowUp':
prevSlide(); break;
case 'f':
case 'F':
toggleFullscreen(); break;
case 'a':
case 'A':
toggleAutoplay(); break;
case 'n':
case 'N':
toggleNotes(); break;
case 'Escape':
exitFullscreen(); break;
case 'p':
case 'P':
exportPDF(); break;
}
});
// 点击控制:点击幻灯片右半边 → 下一页,左半边 → 上一页
// 触摸滑动:支持移动端左右滑动切换
```
**自动播放**:
```javascript
let autoplayInterval = null;
let autoplaySpeed = 5000; // 默认 5 秒/页
function toggleAutoplay() {
if (autoplayInterval) {
clearInterval(autoplayInterval);
autoplayInterval = null;
updateAutoplayButton('▶ Auto');
} else {
autoplayInterval = setInterval(nextSlide, autoplaySpeed);
updateAutoplayButton('⏸ Pause');
}
}
```
**全屏模式**:
```javascript
function toggleFullscreen() {
if (!document.fullscreenElement) {
document.documentElement.requestFullscreen();
} else {
document.exitFullscreen();
}
}
```
**PDF 导出**:
```javascript
function exportPDF() {
// 显示所有幻灯片用于打印
document.body.classList.add('print-mode');
window.print();
document.body.classList.remove('print-mode');
}
```
#### 4.3 控制栏 UI
底部控制栏(非全屏时可见,全屏时悬停底部显示):
```
┌────────────────────────────────────────────────────┐
│ ◀ │ 3 / 12 │ ▶ │ ▶ Auto │ ⛶ Full │ 📥 PDF │ 📝 Notes │
└────────────────────────────────────────────────────┘
```
- **进度条**:页码指示器 + 可点击的进度条
- **自动播放按钮**:切换自动播放,显示当前状态
- **全屏按钮**:进入/退出全屏
- **PDF 按钮**:触发打印/导出 PDF
- **备注按钮**:显示/隐藏演讲者备注
控制栏样式使用当前设计风格的 accent 色。
#### 4.4 幻灯片切换动画
默认使用淡入滑动效果:
```css
.slide {
position: absolute;
inset: 0;
opacity: 0;
transform: translateX(30px);
transition: opacity 0.5s ease, transform 0.5s ease;
pointer-events: none;
}
.slide.active {
opacity: 1;
transform: translateX(0);
pointer-events: auto;
}
.slide.prev {
opacity: 0;
transform: translateX(-30px);
}
```
#### 4.5 打印 / PDF 样式
```css
@media print {
/* 打印模式:每页一张幻灯片 */
.controls, .speaker-notes, .download-bar { display: none !important; }
.slides-container {
position: static;
overflow: visible;
}
.slide {
position: relative !important;
opacity: 1 !important;
transform: none !important;
pointer-events: auto !important;
page-break-after: always;
width: 100vw;
height: 100vh;
display: flex !important;
align-items: center;
justify-content: center;
}
}
```
#### 4.6 幻灯片内容设计原则
每张幻灯片的内容遵循以下设计原则:
**文字极简**:
- 标题:最多 1 行
- 内容:最多 3-5 个要点,每个要点一行
- 绝不放大段文字,演讲词放在备注里
**视觉层级清晰**:
- 大标题突出核心观点
- 数字/数据用超大字号呈现
- 图标使用 emoji 或 SVG inline,不依赖外部图片
**常用页面类型**:
| 类型 | 布局 | 适用场景 |
|------|------|----------|
| **封面** | 居中大标题 + 副标题 + 演讲者 | 第 1 页 |
| **章节页** | 居中章节标题 + 装饰元素 | 章节分隔 |
| **观点页** | 大字号核心观点 + 小字补充 | 关键论点 |
| **列表页** | 标题 + 3-5 条要点(带图标) | 罗列要点 |
| **数据页** | 超大数字 + 说明文字 | 数据冲击 |
| **对比页** | 左右/上下两栏对比 | Before/After |
| **引用页** | 大段引言 + 出处 | 名言/用户反馈 |
| **CTA 页** | 行动号召 + 联系方式 | 结尾 |
#### 4.7 演讲者备注面板
侧边滑出面板,显示当前页的完整演讲词:
```css
.speaker-notes {
position: fixed;
right: 0;
top: 0;
bottom: 0;
width: 350px;
transform: translateX(100%);
transition: transform 0.3s ease;
background: rgba(0,0,0,0.95);
color: #fff;
padding: 24px;
overflow-y: auto;
z-index: 1000;
}
.speaker-notes.open {
transform: translateX(0);
}
```
#### 4.8 响应式适配
```css
/* 幻灯片容器保持 16:9 比例 */
.slides-container {
width: 100vw;
height: 100vh;
max-width: 1920px;
max-height: 1080px;
margin: 0 auto;
position: relative;
overflow: hidden;
}
/* 内容自适应缩放 */
.slide {
padding: 60px 80px;
}
@media (max-width: 768px) {
.slide { padding: 30px 40px; }
.slide h1 { font-size: 2em; }
.controls { font-size: 14px; }
}
```
### Step 5:输出与交付
1. **演讲脚本**保存为 `{主题}_演讲脚本.md`
2. **HTML 幻灯片**保存为 `{主题}_slides.html`
3. 两个文件都保存到**用户当前工作目录**
4. 用 `open {主题}_slides.html` 在浏览器中预览
5. 告知用户操作方式:
```
✅ 演讲脚本和幻灯片已生成!
📄 演讲脚本:{主题}_演讲脚本.md
🎬 HTML 幻灯片:{主题}_slides.html(已在浏览器中打开)
操作指南:
→ / ← / Space 翻页
F 全屏
A 自动播放(5秒/页)
N 显示演讲者备注
P 导出 PDF(浏览器打印)
点击右半屏 下一页
点击左半屏 上一页
需要调整内容、风格或页数吗?
```
## 风格获取失败的降级方案
如果无法从 GitHub 获取 DESIGN.md:
1. 使用内置的通用设计变量(基于 Stripe 风格的中性渐变方案)
2. 告知用户获取失败,已使用默认风格
3. 默认配色:深色背景 `#0a0a0a`,白色文字,渐变 accent
## 注意事项
- HTML 是**单文件**,不依赖本地资源
- 外部依赖仅限:Google Fonts CDN
- 幻灯片保持 **16:9** 比例
- 每页内容**极简**,详细内容放演讲者备注
- 动画轻量,不卡顿
- 打印 PDF 时隐藏所有控制元素
- 如果主题是英文,脚本默认用英文;中文主题默认中文
GitHub에서 보기