mcpField
P
paper-slide-deck

paper-slide-deck

github.com/leonchaox文档处理99077 次安装15 周前更新
代码仓库

关于 paper-slide-deck

paper-slide-deck 可将学术论文或提供的内容制作成幻灯片图像及演示文件。它支持从 PDF 检测并提取图表,也可配置风格、受众、语言、页数或仅生成大纲。

主要功能

  1. 01从 PDF 或文本生成幻灯片
  2. 02检测并提取论文图表
  3. 03选择视觉风格和受众
  4. 04设置语言和幻灯片数量
  5. 05导出为 PowerPoint 或 PDF

适用场景

  1. 01为学术会议论文准备幻灯片
  2. 02将报告整理为高管演示文稿
  3. 03在生成图像前创建幻灯片大纲

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/leonchaox/qinyan-academic-skills --skill paper-slide-deck

安装后在 Claude Code 中输入/paper-slide-deck确认已加载。

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

references/
analysis-framework.md
base-prompt.md
content-rules.md
figure-container-template.md
modification-guide.md
outline-template.md
references/styles/
academic-paper.md
blueprint.md
bold-editorial.md
chalkboard.md
corporate.md
dark-atmospheric.md
editorial-infographic.md
fantasy-animation.md
intuition-machine.md
minimal.md
notion.md
pixel-art.md
scientific.md
sketch-notes.md
vector-illustration.md
vintage.md
watercolor.md
scripts/
apply-template.ts
detect-figures.ts
extract-figure.ts
generate-slides.py
merge-to-pdf.ts
merge-to-pptx.ts
package-lock.json

详细介绍

论文幻灯片生成器

将学术论文和内容转换为专业的幻灯片图像,并自动提取图表。

用法

/paper-slide-deck path/to/paper.pdf
/paper-slide-deck path/to/paper.pdf --style academic-paper
/paper-slide-deck path/to/content.md --style sketch-notes
/paper-slide-deck path/to/content.md --audience executives
/paper-slide-deck path/to/content.md --lang zh
/paper-slide-deck path/to/content.md --slides 10
/paper-slide-deck path/to/content.md --outline-only
/paper-slide-deck  # Then paste content

脚本目录

重要:所有脚本均位于此技能的 scripts/ 子目录中。

Agent 执行说明:

  1. 将此 SKILL.md 文件所在目录路径确定为 SKILL_DIR
  2. 脚本路径 = ${SKILL_DIR}/scripts/<script-name>.ts
  3. 将本文档中所有 ${SKILL_DIR} 替换为实际路径

脚本参考:

脚本用途
scripts/generate-slides.py通过 Gemini API 生成 AI 幻灯片(Python)
scripts/merge-to-pptx.ts将幻灯片合并为 PowerPoint
scripts/merge-to-pdf.ts将幻灯片合并为 PDF
scripts/detect-figures.ts自动检测 PDF 中的图表/表格
scripts/extract-figure.ts从 PDF 页面提取图表(使用 PyMuPDF 作为后备方案)
scripts/apply-template.ts应用图表容器模板

选项

选项说明
--style <name>视觉风格(参见风格库)
--audience <type>目标受众:初学者、中级用户、专家、高管、普通受众
--lang <code>输出语言(en、zh、ja 等)
--slides <number>目标幻灯片数量
--outline-only仅生成大纲,跳过图像生成

风格库

风格说明最适合
academic-paper简洁专业、图表精准学术会议演讲、论文答辩
blueprint(默认)技术示意图、网格纹理架构、系统设计
chalkboard黑色黑板、彩色粉笔教育、教程、课堂
notionSaaS 仪表板、卡片式布局产品演示、SaaS、B2B
bold-editorial杂志封面、醒目字体、深色风格产品发布、主题演讲
corporate海军蓝/金色、结构化布局投资者演示文稿、提案
dark-atmospheric电影感深色模式、发光点缀娱乐、游戏
editorial-infographic杂志式解说、扁平插画技术解说、研究
fantasy-animation吉卜力/迪士尼风格、手绘教育、故事讲述
intuition-machine技术简报、双语标签技术文档、学术内容
minimal极简风格、最大限度留白高管简报、高端内容
pixel-art复古 8 位风格、粗颗粒像素游戏、开发者演讲
scientific学术图示、精准标注生物、化学、医学
sketch-notes手绘、温暖友好教育、教程
vector-illustration扁平矢量、复古可爱创意内容、儿童内容
vintage做旧纸张、历史风格历史、传承、传记
watercolor手绘纹理、自然温暖生活方式、健康、旅行

自动样式选择

内容信号选定样式
论文、学位论文、答辩、会议、ieee、acm、icml、neurips、cvpr、acl、aaai、iclracademic-paper
教程、学习、教育、指南、入门、初学者sketch-notes
教室、教学、学校、粉笔板、黑板chalkboard
架构、系统、数据、分析、技术blueprint
创意、儿童、孩子、可爱、插画vector-illustration
简报、双语、信息图、概念intuition-machine
高管、极简、整洁、简单、优雅minimal
SaaS、产品、仪表板、指标、生产力notion
投资者、季度、商业、企业、提案corporate
发布、营销、主题演讲、大胆、影响力、杂志bold-editorial
娱乐、音乐、游戏、创意、氛围感dark-atmospheric
解释、新闻、科学传播editorial-infographic
故事、奇幻、动画、魔法、奇妙fantasy-animation
游戏、复古、像素、开发者、怀旧pixel-art
生物学、化学、医学、路径、科学scientific
历史、遗产、复古、探险、历史性vintage
生活方式、健康、旅行、艺术、自然watercolor
默认blueprint

布局图库

可选的单页布局提示。请在大纲的 // LAYOUT 部分指定。

单页专属布局
布局描述适用场景
title-hero居中显示大标题和副标题封面页、章节分隔页
quote-callout突出显示引言及出处用户评价、关键见解
key-stat以一个醒目的大数字为焦点影响力统计、指标
split-screen一半图片、一半文字功能亮点、比较
icon-grid带标签的图标网格功能、能力、优势
two-columns内容分布于均衡的两列配对信息、两项要点
three-columns内容分布于三列三方比较、分类
image-caption全幅图片加文字叠层视觉叙事、情感表达
agenda带重点标记的编号列表会议概览、路线图
bullet-list结构化项目符号列表简单内容、列表
信息图衍生布局
布局描述适用场景
linear-progression从左到右的顺序流程时间线、分步流程
binary-comparison并排比较 A 与 B前后对比、优缺点
comparison-matrix多因素网格功能比较
hierarchical-layers金字塔或堆叠层级优先级、重要性
hub-spoke中心节点向外辐射多个项目概念图、生态系统
bento-grid大小不一的卡片概览、摘要
funnel逐步收窄的阶段转化、筛选
dashboard带图表和数字的指标KPI、数据展示
venn-diagram相互重叠的圆关系、交集
circular-flow持续循环的周期循环流程
winding-roadmap带里程碑的弯曲路径旅程、时间线
tree-branching父子层级结构组织结构图、分类体系
iceberg可见层与隐藏层表象与深层内容
bridge展示带有连接的鸿沟问题与解决方案
学术专用布局
布局描述适用场景
paper-title标题、作者、所属机构、会议会议论文封面
outline-agenda带重点标注的编号章节列表演讲结构概览
methods-diagram居中的架构/流程图方法、系统设计
results-chart图表区域 + 数据注释定量结果
equation-focus居中的公式 + 变量定义数学推导
qualitative-grid2x2 或 3x2 图片对比网格视觉结果、消融实验
references-list编号引用列表重要参考文献页
contributions编号贡献点贡献总结

用法:在幻灯片的 // LAYOUT 部分添加 Layout: <name>,以引导视觉排版。

设计理念

此演示文稿面向阅读与分享,而非现场演示:

  • 每张幻灯片都必须无需口头讲解即可自明
  • 滚动浏览时,内容应按逻辑顺序组织
  • 在每张幻灯片中包含所有必要背景信息
  • 针对社交媒体分享和离线阅读进行优化

文件管理

输出目录

每个会话都会创建一个以内容 slug 命名的独立目录:

slide-deck/{topic-slug}/
├── source-{slug}.{ext}    # Source files (text, images, etc.)
├── outline.md
├── outline-{style}.md     # Style variant outlines
├── prompts/
│   └── 01-slide-cover.md, 02-slide-{slug}.md, ...
├── 01-slide-cover.png, 02-slide-{slug}.png, ...
├── {topic-slug}.pptx
└── {topic-slug}.pdf

Slug 生成:

  1. 从内容中提取主要主题(2-4 个词,使用 kebab-case)
  2. 示例:"Introduction to Machine Learning" → intro-machine-learning
冲突解决

如果 slide-deck/{topic-slug}/ 已存在:

  • 追加时间戳:{topic-slug}-YYYYMMDD-HHMMSS
  • 示例:intro-ml 已存在 → intro-ml-20260118-143052
源文件

将所有源文件复制并命名为 source-{slug}.{ext}:

  • source-article.md(主要文本内容)
  • source-diagram.png(对话中的图片)
  • source-data.xlsx(其他文件)

支持多种来源:文本、图片以及对话中的文件。

工作流

第 1 步:分析内容
  1. 保存源内容(如果是粘贴的内容,则保存为 source.md)
  2. 按照 references/analysis-framework.md 进行深入内容分析
  3. 确定风格(使用 --style 或根据特征自动选择)
  4. 检测语言(源语言与用户偏好)
  5. 规划幻灯片数量(--slides 或动态确定)
  6. 对于学术论文(含图片的 PDF):运行自动图片检测:
    npx -y bun ${SKILL_DIR}/scripts/detect-figures.ts --pdf source-paper.pdf --output figures.json
    
    这会输出一个 JSON 文件,其中包含所有检测到的图片/表格、页码和说明文字。
第 2 步:生成大纲变体
  1. 根据内容分析生成 3 种风格的大纲变体
  2. 按照 references/outline-template.md 组织结构
  3. 为学术论文自动填充 IMAGE_SOURCE:
    • 读取第 1 步生成的 figures.json
    • 使用 references/analysis-framework.md 第 8 节中的规则,将图片映射到幻灯片
    • 自动将 // IMAGE_SOURCE 块添加到适当的幻灯片:
      • 架构/流程图 → 方法类幻灯片(Source: extract)
      • 结果表格 → 定量结果类幻灯片(Source: extract)
      • 对比图片 → 定性结果类幻灯片(Source: extract)
      • 概念图/简单图表 → 交由 AI 生成(Source: generate 或省略)
  4. 为每种变体保存为 outline-{style}.md
第 3 步:用户确认

通过一次 AskUserQuestion 提出所有适用选项:

问题询问时机
风格变体始终询问(3 个选项 + 自定义)
语言仅当源语言 ≠ 用户语言时询问

选择后:

  • 将选定的 outline-{style}.md 复制为 outline.md
  • 如果用户提出要求,则以不同语言重新生成
  • 用户可以编辑 outline.md 进行微调

如果指定了 --outline-only,则在此处停止。

步骤 4:生成提示词
  1. 阅读 references/base-prompt.md
  2. 与大纲中的风格说明结合
  3. 添加幻灯片专属内容
  4. 如果大纲中指定了 Layout:,在提示词中加入布局指导:
    • 参考布局特征来安排图像构图
    • 示例:Layout: hub-spoke → “将核心概念置于中央,相关元素向外辐射”
  5. 保存到 prompts/ 目录
步骤 5:选择图像生成方式

生成图像前,请用户选择生成方式:

使用 AskUserQuestion,提供以下选项:

选项标签描述
1Gemini API(推荐)通过 Python 使用 Google 官方 API。需要设置 GOOGLE_API_KEY 环境变量。
2Gemini Web(基于浏览器)⚠️ 使用逆向工程得到的 Web API。无需 API 密钥,但可能无法正常工作。

根据选择:

选项 1:Gemini API(Python)
  1. 验证 API 密钥:检查 GOOGLE_API_KEY 或 GEMINI_API_KEY 环境变量
  2. 运行生成脚本:
    python ${SKILL_DIR}/scripts/generate-slides.py <slide-deck-dir> --model gemini-3-pro-image-preview
    

脚本功能:

  • 如果缺少 google-genai 包,则自动安装
  • 使用指数退避的重试逻辑(重试 3 次)
  • 跳过已生成的幻灯片(> 10KB)
  • 支持通过 --model 标志指定自定义模型
  • 输出到 slides/ 子目录

故障排除:

  • 如果出现服务器断开连接错误,脚本会自动重试
  • 如果持续失败,请重新运行脚本(已完成的幻灯片会被跳过)
  • 如果多次失败,请检查 API 配额
选项 2:Gemini Web 技能
  1. 同意检查:读取以下位置的同意文件:

    • Windows:$APPDATA/baoyu-skills/gemini-web/consent.json
    • macOS:~/Library/Application Support/baoyu-skills/gemini-web/consent.json
    • Linux:~/.local/share/baoyu-skills/gemini-web/consent.json
  2. 如果没有同意记录或版本不匹配,显示免责声明并询问:

    ⚠️ DISCLAIMER: This uses a reverse-engineered Gemini Web API (NOT official).
    Risks: May break anytime, no support, possible account risk.
    
  3. 针对每张幻灯片,运行:

    npx -y bun ${GEMINI_WEB_SKILL_DIR}/scripts/main.ts \
      --promptfiles prompts/01-slide-cover.md \
      --image 01-slide-cover.png \
      --sessionId slides-{topic-slug}-{timestamp}
    

    其中,GEMINI_WEB_SKILL_DIR = baoyu-danger-gemini-web 技能目录的路径。

  4. 代理支持:如果用户处于受限网络中,请在前面加上:

    HTTP_PROXY=http://127.0.0.1:7890 HTTPS_PROXY=http://127.0.0.1:7890
    
步骤 5.5:处理 IMAGE_SOURCE(自动提取图表)

对于学术演示文稿,已在步骤 2 中根据步骤 1 的图表检测结果自动填充 IMAGE_SOURCE 元数据。

自动执行:

  1. 解析大纲,找出包含 Source: extract 的幻灯片

  2. 创建图表目录:mkdir -p figures

  3. 针对每张需要提取的幻灯片,自动执行:

    • 从元数据中读取图表编号、页码和标题
    • 运行图表提取脚本:
      npx -y bun ${SKILL_DIR}/scripts/extract-figure.ts \
        --pdf source-paper.pdf \
        --page <page-number> \
        --output figures/figure-<N>.png
      
    • 运行模板应用脚本:
      npx -y bun ${SKILL_DIR}/scripts/apply-template.ts \
        --figure figures/figure-<N>.png \
        --title "<slide-headline>" \
        --caption "Figure <N>: <caption-text>" \
        --output <NN>-slide-<slug>.png
      
    • 报告:“已提取:图表 N → 幻灯片 NN”
  4. 对于包含 Source: generate 的幻灯片(或未指定 IMAGE_SOURCE 的幻灯片):

    • 继续执行步骤 6,使用 AI 生成

注意:源 PDF 必须以 source-paper.pdf 为文件名保存在输出目录中。

故障排除:

  • 如果图表检测漏掉了图表:手动将 // IMAGE_SOURCE 块添加到大纲中
  • 如果图表映射错误:编辑大纲中的 Figure: 和 Page: 值
  • 如果提取失败:检查 PDF 页码(从 1 开始计数)

使用 PyMuPDF 作为页面提取的备用方案: 如果 extract-figure.ts 因出现 “Image or Canvas expected” 错误而失败(复杂 PDF 中常见),请使用 PyMuPDF:

import fitz
doc = fitz.open("source-paper.pdf")
page = doc[page_num - 1]  # 0-indexed
mat = fitz.Matrix(3, 3)  # 3x scale for high resolution
pix = page.get_pixmap(matrix=mat)
pix.save(f"extracted/page-{page_num}.png")

然后使用 apply-template.ts 应用模板。

步骤 6:生成图像
  1. 使用步骤 5 中选定的方法
  2. 跳过步骤 5.5 中已处理的幻灯片(包含 Source: extract 的幻灯片)
  3. 生成会话 ID:slides-{topic-slug}-{timestamp}
  4. 使用相同的会话 ID 生成其余每张幻灯片
  5. 报告进度:“已生成 X/N”
  6. 生成失败时自动重试一次
步骤 7:合并为 PPTX 和 PDF
npx -y bun ${SKILL_DIR}/scripts/merge-to-pptx.ts <slide-deck-dir>
npx -y bun ${SKILL_DIR}/scripts/merge-to-pdf.ts <slide-deck-dir>
步骤 8:输出摘要
Slide Deck Complete!

Topic: [topic]
Style: [style name]
Location: [directory path]
Slides: N total

- 01-slide-cover.png ✓ Cover
- 02-slide-intro.png ✓ Content
- ...
- {NN}-slide-back-cover.png ✓ Back Cover

Outline: outline.md
PPTX: {topic-slug}.pptx
PDF: {topic-slug}.pdf

幻灯片修改

请参阅 references/modification-guide.md,了解:

  • 编辑单张幻灯片的工作流
  • 添加新幻灯片(并重新编号)
  • 删除幻灯片(并重新编号)
  • 文件命名约定

图像生成依赖项

Gemini API(选项 1 - 推荐)

需要:

  • GOOGLE_API_KEY 或 GEMINI_API_KEY 环境变量
  • Python 3.8+ 和 pip
  • google-genai 软件包(由脚本自动安装)

模型:gemini-3-pro-image-preview(默认)

Gemini Web Skill(选项 2)

需要:

  • 安装在 .claude/skills/baoyu-danger-gemini-web 的 baoyu-danger-gemini-web skill
  • 已登录 Google 账号的 Google Chrome 浏览器
  • 用户同意有关逆向工程 API 的免责声明
PDF 图表提取

需要:

  • 主要方式:pdfjs-dist npm 软件包(Node.js 请使用 legacy 构建)
  • 备用方式:pymupdf Python 软件包(处理复杂 PDF 时更可靠)
  • apply-template.ts 所需的 canvas npm 软件包

参考资料

文件内容
references/analysis-framework.md演示文稿的深度内容分析
references/outline-template.md大纲结构和 STYLE_INSTRUCTIONS 格式
references/modification-guide.md编辑、添加和删除幻灯片的工作流
references/content-rules.md内容和风格指南
references/base-prompt.md图像生成的基础提示词
references/figure-container-template.md提取图表容器的视觉规范
references/styles/<style>.md完整的风格规范

注意事项

图像生成
  • Nano Banana Pro API:推荐。稳定、可靠,需要 API 密钥
  • Gemini Web:无需 API 密钥,但使用逆向工程 API,存在账号风险
  • 生成时间:每张幻灯片 10-30 秒
  • 生成失败时自动重试一次
  • 通过会话 ID 保持风格一致性
内容指南
  • 对敏感公众人物使用风格化替代形象
  • 两种方法都使用相同的底层 Gemini 模型生成图像

扩展支持

通过 EXTEND.md 添加自定义风格和配置。

检查路径(按优先级排序):

  1. .paper-skills/paper-slide-deck/EXTEND.md(项目)
  2. ~/.paper-skills/paper-slide-deck/EXTEND.md(用户)

如果找到,请在步骤 1 之前加载。扩展内容会覆盖默认设置。

评论

支持 Markdown