← ClaudeAtlas

pptlisted

将 .md 或 .docx 文件转换为可投屏的单文件 HTML 演示文稿。设计风格:暖奶油×赭红×深棕黑,Cormorant Garamond + Noto Serif SC,键盘翻页+导航点。用法:/ppt <文件路径>
ibadbasit/skill_doc2ppt · ★ 1 · Data & Documents · score 77
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