mcpField
S
slides

slides

github.com/openai文档处理28.4k584 次安装18 周前更新
代码仓库

关于 slides

Slides 是使用 PptxGenJS 编写可编辑 PowerPoint 演示文稿的技能,适用于新建、重制或修改幻灯片。它要求在交付演示文稿和 JavaScript 源码前渲染页面并检查布局。

主要功能

  1. 01使用 PptxGenJS 编写演示文稿
  2. 02渲染幻灯片以供目视检查
  3. 03检查幻灯片内容溢出
  4. 04生成幻灯片缩略图拼图
  5. 05检测缺失或替换的字体
  6. 06保持演示文稿可编辑

适用场景

  1. 01创建可编辑的 PowerPoint 演示文稿
  2. 02重制或修改现有演示文稿
  3. 03交付前检查幻灯片渲染与布局

安装

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

$npx skills add https://github.com/openai/skills --skill slides

安装后在 Claude Code 中输入/slides确认已加载。

包含的文件

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

LICENSE.txt
agents/
openai.yaml
assets/pptxgenjs_helpers/
code.js
image.js
index.js
latex.js
layout.js
layout_builders.js
svg.js
text.js
util.js
references/
pptxgenjs-helpers.md
scripts/
create_montage.py
detect_font.py
ensure_raster_image.py
render_slides.py
slides_test.py

详细介绍

幻灯片

概述

使用 PptxGenJS 编写幻灯片。除非任务仅涉及检查,否则不要使用 python-pptx 生成演示文稿;请使用 JavaScript 保持输出可编辑,并同时交付 .pptx 和源 .js 文件。

请在任务专用目录中完成工作。只有在渲染和验证通过后,才将最终产物复制到指定目标位置。

捆绑资源

  • assets/pptxgenjs_helpers/:将此文件夹复制到演示文稿工作区,并在本地导入,而不是重新实现辅助逻辑。
  • scripts/render_slides.py:将 .pptx 或 .pdf 栅格化为逐页 PNG。
  • scripts/slides_test.py:检测溢出演示文稿画布的内容。
  • scripts/create_montage.py:将渲染后的幻灯片制作成联系表样式的拼图。
  • scripts/detect_font.py:报告 LibreOffice 解析字体时缺失或被替换的字体。
  • scripts/ensure_raster_image.py:将 SVG/EMF/HEIC/PDF 等格式的资源转换为 PNG,以便快速检查。
  • references/pptxgenjs-helpers.md:仅在需要了解 API 详情或依赖说明时加载。

工作流

  1. 检查请求,确定是要创建新演示文稿、重现现有演示文稿,还是编辑现有演示文稿。
  2. 预先设置幻灯片尺寸。默认使用 16:9(LAYOUT_WIDE),除非源材料明显采用其他宽高比。
  3. 将 assets/pptxgenjs_helpers/ 复制到工作目录,并从该目录导入辅助工具。
  4. 使用 JavaScript 构建演示文稿,明确指定主题字体、稳定的间距,并在可行时使用可编辑的 PowerPoint 原生元素。
  5. 从此技能目录运行捆绑脚本,或将所需脚本复制到任务工作区。使用 render_slides.py 渲染结果,检查 PNG,并在交付前修复布局问题。
  6. 如果幻灯片边缘空间紧张或内容密集,请运行 slides_test.py 检查溢出。
  7. 交付 .pptx、用于编写演示文稿的 .js,以及重建演示文稿所需的所有生成资源。

编写规则

  • 明确设置主题字体。如果字体排版很重要,不要依赖 PowerPoint 默认设置。
  • 使用 autoFontSize、calcTextBox 及相关辅助工具调整文本框尺寸;不要使用 PptxGenJS 的 fit 或 autoFit。
  • 使用项目符号选项,不要直接输入 • 字符。
  • 使用 imageSizingCrop 或 imageSizingContain,不要使用 PptxGenJS 内置的图像尺寸调整功能。
  • 使用 latexToSvgDataUri() 处理公式,使用 codeToRuns() 处理带语法高亮的代码块。
  • 对于简单的柱状图、折线图、饼图和直方图等图表,优先使用 PowerPoint 原生图表,以便审阅者后续编辑。
  • 对于 PptxGenJS 无法良好呈现的图表或示意图,请在外部渲染为 SVG,再将 SVG 放入幻灯片。
  • 每当生成或实质性编辑幻灯片时,请在提交的 JavaScript 中加入 warnIfSlideHasOverlaps(slide, pptx) 和 warnIfSlideElementsOutOfBounds(slide, pptx)。
  • 交付前修复所有非预期的重叠和越界警告。如果重叠是有意的,请在相关元素附近添加简短的代码注释。

重现或编辑现有幻灯片

  • 先渲染源演示文稿或参考 PDF,以便直观比较幻灯片的几何布局。
  • 重建布局前,先匹配原始宽高比。
  • 尽可能保留可编辑性:文本应保持为文本,简单图表应继续使用原生图表。
  • 如果参考幻灯片使用了栅格图稿,请使用 ensure_raster_image.py 从矢量或特殊图像格式生成调试用 PNG,然后再放置。

验证命令

以下示例假设你已将所需脚本复制到工作目录。如果没有,请使用相对于此技能目录的相同脚本路径。

# Render slides to PNGs for review
python3 scripts/render_slides.py deck.pptx --output_dir rendered

# Build a montage for quick scanning
python3 scripts/create_montage.py --input_dir rendered --output_file montage.png

# Check for overflow beyond the original slide canvas
python3 scripts/slides_test.py deck.pptx

# Detect missing or substituted fonts
python3 scripts/detect_font.py deck.pptx --json

如果需要了解辅助工具 API 概要或依赖详情,请加载 references/pptxgenjs-helpers.md。

评论

支持 Markdown