关于 slides
Slides 是使用 PptxGenJS 编写可编辑 PowerPoint 演示文稿的技能,适用于新建、重制或修改幻灯片。它要求在交付演示文稿和 JavaScript 源码前渲染页面并检查布局。
主要功能
- 01使用 PptxGenJS 编写演示文稿
- 02渲染幻灯片以供目视检查
- 03检查幻灯片内容溢出
- 04生成幻灯片缩略图拼图
- 05检测缺失或替换的字体
- 06保持演示文稿可编辑
适用场景
- 01创建可编辑的 PowerPoint 演示文稿
- 02重制或修改现有演示文稿
- 03交付前检查幻灯片渲染与布局
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ openai/ skills --skill slides安装后在 Claude Code 中输入/slides确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
LICENSE.txtagents/openai.yamlassets/pptxgenjs_helpers/code.jsimage.jsindex.jslatex.jslayout.jslayout_builders.jssvg.jstext.jsutil.jsreferences/pptxgenjs-helpers.mdscripts/create_montage.pydetect_font.pyensure_raster_image.pyrender_slides.pyslides_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 详情或依赖说明时加载。
工作流
- 检查请求,确定是要创建新演示文稿、重现现有演示文稿,还是编辑现有演示文稿。
- 预先设置幻灯片尺寸。默认使用 16:9(
LAYOUT_WIDE),除非源材料明显采用其他宽高比。 - 将
assets/pptxgenjs_helpers/复制到工作目录,并从该目录导入辅助工具。 - 使用 JavaScript 构建演示文稿,明确指定主题字体、稳定的间距,并在可行时使用可编辑的 PowerPoint 原生元素。
- 从此技能目录运行捆绑脚本,或将所需脚本复制到任务工作区。使用
render_slides.py渲染结果,检查 PNG,并在交付前修复布局问题。 - 如果幻灯片边缘空间紧张或内容密集,请运行
slides_test.py检查溢出。 - 交付
.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