publish-to-pages について
プレゼンテーションやウェブコンテンツを GitHub Pages に公開するスキルです。HTML、PPTX、PDF、Google Slides を入力でき、変換からリポジトリ作成、Pages 設定まで行います。
主な機能
- 01HTML、PPTX、PDF、Google Slides に対応
- 02プレゼンテーションを HTML に変換
- 03外部アセットで大容量ファイルに対応
- 04GitHub リポジトリの作成とプッシュ
- 05GitHub Pages の公開設定
活用シーン
- 01プレゼンテーションをウェブページとして公開
- 02PDF をページ画像に変換してナビゲーションを追加
- 03HTML コンテンツを 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 が含まれている |
指定されていない場合は、ユーザーに リポジトリ名 を尋ねてください。デフォルトは、拡張子を除いたファイル名です。
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 と伝えてください。
付属のスクリプトで変換します(pdftoppm を使用するため、poppler-utils が必要です):
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"
ユーザーが希望した場合は、public の代わりに private を渡してください。
スクリプトはリポジトリを作成し、index.html(存在する場合は assets/ も)をプッシュして、GitHub Pages を有効にします。
注: 外部アセットモードを使用した場合、出力 HTML は assets/ 内のファイルを参照します。公開スクリプトは assets/ ディレクトリを自動検出し、HTML ファイルと一緒にコピーします。HTML ファイルとその assets/ ディレクトリが、同じ親ディレクトリにあることを確認してください。
5. 出力
ユーザーに次の内容を伝えてください:
- リポジトリ:
https://github.com/USERNAME/REPO_NAME - 公開 URL:
https://USERNAME.github.io/REPO_NAME/ - 注: ページが公開されるまで 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 を手動でダウンロードするようユーザーに依頼してください。