关于 publish-to-pages
用于将演示文稿和网页内容发布到 GitHub Pages 的技能。支持 HTML、PPTX、PDF 和 Google Slides 输入,可转换格式并自动创建仓库、配置 Pages。
主要功能
- 01支持 HTML、PPTX、PDF 和 Google Slides
- 02将演示文稿转换为 HTML
- 03通过外部资源处理大型文件
- 04创建并推送 GitHub 仓库
- 05启用 GitHub Pages 发布
适用场景
- 01将演示文稿发布为网页
- 02把 PDF 转成可导航的页面图像
- 03将 HTML 内容部署到 GitHub Pages
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ github/ awesome-copilot --skill publish-to-pages安装后在 Claude Code 中输入/publish-to-pages确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
scripts/convert-pdf.pyconvert-pptx.pypublish.sh详细介绍
publish-to-pages
将任意演示文稿或网页内容一键发布到 GitHub Pages。
1. 前置条件检查
静默运行以下命令。仅在出错时提示:
command -v gh >/dev/null || echo "MISSING: gh CLI — install from https://cli.github.com"
gh auth status &>/dev/null || echo "MISSING: gh not authenticated — run 'gh auth login'"
command -v python3 >/dev/null || echo "MISSING: python3 (needed for PPTX conversion)"
poppler-utils 是可选的(通过 pdftoppm 进行 PDF 转换)。不要因此阻塞流程。
2. 输入检测
根据用户提供的内容确定输入类型:
| 输入 | 检测方式 |
|---|---|
| HTML 文件 | 扩展名为 .html 或 .htm |
| PPTX 文件 | 扩展名为 .pptx |
| PDF 文件 | 扩展名为 .pdf |
| Google Slides URL | URL 包含 docs.google.com/presentation |
如果用户未提供 repo 名称,请询问。默认值:不带扩展名的文件名。
3. 转换
大文件处理
两个转换脚本都会自动检测大文件并切换到 外部资源模式:
- PPTX: 文件大于 20MB 或包含超过 50 张图片 → 图片保存为
assets/中的独立文件 - PDF: 文件大于 20MB 或超过 50 页 → 页面 PNG 保存到
assets/中 - 文件大于 150MB 会打印警告(PPTX 会建议改用 PDF 方式)
这样可确保单个文件远低于 GitHub 的 100MB 限制。小文件仍会生成单个自包含的 HTML。
你可以使用 --external-assets 或 --no-external-assets 强制指定该行为。
HTML
无需转换。直接将该文件用作 index.html。
PPTX
运行转换脚本:
python3 SKILL_DIR/scripts/convert-pptx.py INPUT_FILE /tmp/output.html
# For large files, force external assets:
python3 SKILL_DIR/scripts/convert-pptx.py INPUT_FILE /tmp/output.html --external-assets
如果缺少 python-pptx,请告知用户:pip install python-pptx
使用附带的脚本进行转换(需要 poppler-utils 以使用 pdftoppm):
python3 SKILL_DIR/scripts/convert-pdf.py INPUT_FILE /tmp/output.html
# For large files, force external assets:
python3 SKILL_DIR/scripts/convert-pdf.py INPUT_FILE /tmp/output.html --external-assets
每一页都会渲染为 PNG,并嵌入到带幻灯片导航的 HTML 中。
如果缺少 pdftoppm,请告知用户:apt install poppler-utils(macOS 上则为 brew install poppler)。
Google Slides
- 从 URL 中提取演示文稿 ID(
/d/与/之间的长字符串) - 下载为 PPTX:
curl -L "https://docs.google.com/presentation/d/PRESENTATION_ID/export/pptx" -o /tmp/slides.pptx
- 然后使用上面的转换脚本转换该 PPTX。
4. 发布
可见性
默认情况下,仓库创建为 公开。如果用户指定 private(或希望使用私有仓库),请使用 --private — 但请注意,私有仓库上的 GitHub Pages 需要 Pro、Team 或 Enterprise 套餐。
发布
bash SKILL_DIR/scripts/publish.sh /path/to/index.html REPO_NAME public "Description"
如果用户要求,请传入 private 而不是 public。
该脚本会创建仓库、推送 index.html(如果存在 assets/ 也一并推送),并启用 GitHub Pages。
注意: 使用外部资源模式时,输出的 HTML 会引用 assets/ 中的文件。发布脚本会自动检测并复制 HTML 文件同级的 assets/ 目录。请确保 HTML 文件及其 assets/ 目录位于同一父目录中。
5. 输出
告知用户:
- 仓库:
https://github.com/USERNAME/REPO_NAME - 在线 URL:
https://USERNAME.github.io/REPO_NAME/ - 注意: Pages 需要 1-2 分钟才能生效。
错误处理
- 仓库已存在: 建议追加数字(
my-slides-2)或日期(my-slides-2026)。 - Pages 启用失败: 仍然返回仓库 URL。用户可以在仓库 Settings 中手动启用 Pages。
- PPTX 转换失败: 告知用户运行
pip install python-pptx。 - PDF 转换失败: 建议安装
poppler-utils(apt install poppler-utils或brew install poppler)。 - Google Slides 下载失败: 该演示文稿可能无法公开访问。请用户将其设为可查看,或手动下载 PPTX。