🚀 快速安装
复制以下命令并运行,立即安装此 Skill:
npx skills add https://skills.sh/github/awesome-copilot/publish-to-pages
💡 提示:需要 Node.js 和 NPM
publish-to-pages
将任何演示文稿或网页内容一键发布到 GitHub Pages。
1. 先决条件检查
静默运行这些命令。仅在出错时显示信息:
command -v gh >/dev/null || echo "缺少: gh CLI — 请从 https://cli.github.com 安装"
gh auth status &>/dev/null || echo "缺少: gh 未认证 — 请运行 'gh auth login'"
command -v python3 >/dev/null || echo "缺少: python3 (PPTX 转换需要)"
poppler-utils 是可选的(通过 pdftoppm 进行 PDF 转换)。不要因为缺失而阻塞。
2. 输入检测
根据用户提供的内容确定输入类型:
| 输入 | 检测方式 |
|---|---|
| HTML 文件 | 扩展名 .html 或 .htm |
| PPTX 文件 | 扩展名 .pptx |
| PDF 文件 | 扩展名 .pdf |
| Google Slides 链接 | URL 包含 docs.google.com/presentation |
如果用户未提供仓库名称,请询问。默认使用不带扩展名的文件名。
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 输入文件 /tmp/output.html
# 对于大文件,强制使用外部资源:
python3 SKILL_DIR/scripts/convert-pptx.py 输入文件 /tmp/output.html --external-assets
如果缺少 python-pptx,告知用户:pip install python-pptx
使用附带的脚本进行转换(需要 poppler-utils 中的 pdftoppm):
python3 SKILL_DIR/scripts/convert-pdf.py 输入文件 /tmp/output.html
# 对于大文件,强制使用外部资源:
python3 SKILL_DIR/scripts/convert-pdf.py 输入文件 /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/演示文稿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 仓库名称 public "描述信息"
如果用户请求私有仓库,将 public 替换为 private。
该脚本会创建仓库,推送 index.html(以及 assets/ 目录,如果存在),并启用 GitHub Pages。
注意: 当使用外部资源模式时,输出的 HTML 文件会引用 assets/ 中的文件。发布脚本会自动检测并将 assets/ 目录与 HTML 文件一起复制。请确保 HTML 文件及其 assets/ 目录位于同一父目录中。
5. 输出
告知用户:
- 仓库地址:
https://github.com/用户名/仓库名 - 在线地址:
https://用户名.github.io/仓库名/ - 注意: Pages 生效大约需要 1-2 分钟。
错误处理
- 仓库已存在: 建议添加数字后缀(
my-slides-2)或日期(my-slides-2026)。 - Pages 启用失败: 仍返回仓库 URL。用户可以在仓库设置中手动启用 Pages。
- PPTX 转换失败: 告知用户运行
pip install python-pptx。 - PDF 转换失败: 建议安装
poppler-utils(apt install poppler-utils或brew install poppler)。 - Google Slides 下载失败: 演示文稿可能未公开访问。请用户将其设为可查看,或手动下载 PPTX 文件。
📄 原始文档
完整文档(英文):
https://skills.sh/github/awesome-copilot/publish-to-pages
💡 提示:点击上方链接查看 skills.sh 原始英文文档,方便对照翻译。

评论(0)