pptlisted
Install: claude install-skill ibadbasit/skill_doc2ppt
# 演示文稿生成器
将 `$ARGUMENTS` 转换为演示文稿。
## 参数解析(首先执行)
检查 `$ARGUMENTS` 是否包含 `--pptx`:
- **包含 `--pptx`**:提取文件路径(去掉 `--pptx` 标志),走 **PPTX 分支**(见文件末尾)
- **不含 `--pptx`**:走现有 **HTML 分支**(第一步至第三步),逻辑不变
**HTML 输出路径**:将输入文件的扩展名替换为 `.html`,保存到同目录。
例:`/path/to/report.md` → `/path/to/report.html`
**PPTX 输出路径**:将输入文件的扩展名替换为 `.pptx`,保存到同目录。
例:`/path/to/report.md --pptx` → `/path/to/report.pptx`
---
## 第一步:读取源文件
如果是 `.docx`,用以下方式解包提取文本和图片:
```python
import zipfile, os
with zipfile.ZipFile('input.docx') as z:
imgs = [f for f in z.namelist() if f.startswith('word/media/')]
z.extractall('/tmp/docx_extracted/')
# 解析 word/document.xml 获取正文
# 映射 word/_rels/document.xml.rels 获取图片与段落的对应关系
```
图片以 base64 嵌入 HTML,不依赖外部路径。
如果是 `.md`,直接读取文本内容。
---
## 第二步:规划幻灯片
**内容原则(最重要,必须严格遵守):**
- 只用原文里有的内容,绝不补充、解释、扩写
- 找到每个段落最重的那一句,让它单独站出来——那句话就是这张幻灯片
- 保留作者的语言,包括口语、俚语、反常识的表达
- 删除一切可以用于任何行业/任何报告的套话
- 每张幻灯片只说一件事,说完就停,不解释,不总结
**幻灯片类型选择:**
| 类型 | 背景 | 用途 |
|------|------|------|
| `dark` | `#231510` 深棕黑 | 核心判断、金句,一句话站满一张 |
| `terra` | `#B05A42` 赭红 | 章节分隔页(用大编号 01/02/03) |
| `cream` | `#F4EDE3` 暖奶油 | 正文、数据、表格、列表 |
**节奏规则:**
- 章节页(terra)→ 若干内容页(cream/dark)→ 下一章节
- dark 页不连续超过 2 张
- 封面用 dark,结尾用 cream
**典型结构:**
```
封面(dark) 标题 + 副标题 + 日期/来源
章节页(terra) 大编号 + 章节名
内容页(cream) caption → 40px 分隔线 → 主体内容
核心判断页(dark)单句 pull-light,字号放大,留白充足
图表页(cream) 左:文字判断 / 右:图表(base64)
结尾页(cream) 收尾信息
```
---
## 第三步:生成 HTML
使用以下完整模板,填入实际幻灯片内容:
```html
<!DOCTYPE html>
<html lang="zh">
<head>
<meta charset