🚀 快速安装

复制以下命令并运行,立即安装此 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

PDF

使用附带的脚本进行转换(需要 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

  1. 从 URL 中提取演示文稿 ID(位于 /d/ 和下一个 / 之间的长字符串)
  2. 下载为 PPTX:
curl -L "https://docs.google.com/presentation/d/演示文稿ID/export/pptx" -o /tmp/slides.pptx
  1. 然后使用上述转换脚本转换该 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-utilsapt install poppler-utilsbrew install poppler)。
  • Google Slides 下载失败: 演示文稿可能未公开访问。请用户将其设为可查看,或手动下载 PPTX 文件。

📄 原始文档

完整文档(英文):

https://skills.sh/github/awesome-copilot/publish-to-pages

💡 提示:点击上方链接查看 skills.sh 原始英文文档,方便对照翻译。

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。