此登錄庫釘選版本所收錄的最新上游作者日期。

publish-to-pages

已同步 v1.1.0 授權: MIT 來源: github/awesome-copilot/skills/publish-to-pages 提交: 4742f26 收錄的最新變更:

Publish presentations and web content to GitHub Pages. Converts PPTX, PDF, HTML, or Google Slides to a live GitHub Pages URL. Handles repo creation, file conversion, Pages enablement, and returns the live URL. Use when the user wants to publish, deploy, or share a presentation or HTML file via GitHub Pages.

摘要

用途
它會簡化網站檔案的準備、GitHub 儲存庫建立與 Pages 設定,讓支援的內容能在線上提供瀏覽。
使用時機
當使用者要為 HTML、PPTX、PDF 或 Google 簡報準備網站並設定 Pages,而非僅編輯或排版來源內容時,適合使用此功能。
輸出結果
Pages 啟用後,它會提供 GitHub 儲存庫與網站的網址,並提醒使用者發布可能需要一至兩分鐘。
上游變更(2 筆,最新收錄 2026-03-19)
07e1e66 fix: handle large presentations with external assets mode (#1090) 此技能現已說明大型 PPTX/PDF 輸入的自動外部資源模式與檔案大小警告、命令列覆寫選項,以及將產生的資源檔與 HTML 一同發布。
4ad31b6 Add publish-to-pages agent skill (#1035) 新增 publish-to-pages 技能,說明先決條件、PPTX/PDF/Google Slides 的轉換流程、將內容發布至 GitHub Pages 的方式,以及常見錯誤的處理方法。
npx skills add "lettucebo/Skills#v2.2.0@publish-to-pages" --full-depth

⚠ v2.2.0 發布後即可使用

publish-to-pages

Publish any presentation or web content to GitHub Pages in one shot.

1. Prerequisites Check

Run these silently. Only surface errors:

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 is optional (PDF conversion via pdftoppm). Don't block on it.

2. Input Detection

Determine input type from what the user provides:

Input Detection
HTML file Extension .html or .htm
PPTX file Extension .pptx
PDF file Extension .pdf
Google Slides URL URL contains docs.google.com/presentation

Ask the user for a repo name if not provided. Default: filename without extension.

3. Conversion

Large File Handling

Both conversion scripts automatically detect large files and switch to external assets mode:

  • PPTX: Files >20MB or with >50 images → images saved as separate files in assets/
  • PDF: Files >20MB or with >50 pages → page PNGs saved in assets/
  • Files >150MB print a warning (PPTX suggests PDF path instead)

This keeps individual files well under GitHub's 100MB limit. Small files still produce a single self-contained HTML.

You can force the behavior with --external-assets or --no-external-assets.

HTML

No conversion needed. Use the file directly as index.html.

PPTX

Run the conversion script:

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

If python-pptx is missing, tell the user: pip install python-pptx

PDF

Convert with the included script (requires poppler-utils for 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

Each page is rendered as a PNG and embedded into HTML with slide navigation. If pdftoppm is missing, tell the user: apt install poppler-utils (or brew install poppler on macOS).

Google Slides

  1. Extract the presentation ID from the URL (the long string between /d/ and /)
  2. Download as PPTX:
curl -L "https://docs.google.com/presentation/d/PRESENTATION_ID/export/pptx" -o /tmp/slides.pptx
  1. Then convert the PPTX using the convert script above.

4. Publishing

Visibility

Repos are created public by default. If the user specifies private (or wants a private repo), use --private — but note that GitHub Pages on private repos requires a Pro, Team, or Enterprise plan.

Publish

bash SKILL_DIR/scripts/publish.sh /path/to/index.html REPO_NAME public "Description"

Pass private instead of public if the user requests it.

The script creates the repo, pushes index.html (plus assets/ if present), and enables GitHub Pages.

Note: When external assets mode is used, the output HTML references files in assets/. The publish script automatically detects and copies the assets/ directory alongside the HTML file. Make sure the HTML file and its assets/ directory are in the same parent directory.

5. Output

Tell the user:

  • Repository: https://github.com/USERNAME/REPO_NAME
  • Live URL: https://USERNAME.github.io/REPO_NAME/
  • Note: Pages takes 1-2 minutes to go live.

Error Handling

  • Repo already exists: Suggest appending a number (my-slides-2) or a date (my-slides-2026).
  • Pages enablement fails: Still return the repo URL. User can enable Pages manually in repo Settings.
  • PPTX conversion fails: Tell user to run pip install python-pptx.
  • PDF conversion fails: Suggest installing poppler-utils (apt install poppler-utils or brew install poppler).
  • Google Slides download fails: The presentation may not be publicly accessible. Ask user to make it viewable or download the PPTX manually.

歷程

v1.0.0 bootstrap
v1.1.0 baseline-verified 4742f26
v1.1.0 license-refresh 4742f26