Publish To Pages
GitHubOfficialFirst committed by AndreaGriffiths11Distributed by GitHub
- Skill
- Workflow
- Cloud and DevOps
- MIT
- Low risk
- Has scripts
AutoGineer summary
Written by AutoGineer from the skill’s own files, not by the author
This skill streamlines the process of publishing documents and presentations to the web by automating the conversion and deployment pipeline. It accepts PPTX, PDF, HTML, or Google Slides inputs, converts them into a web-ready format, creates a new GitHub repository, and enables GitHub Pages hosting. The skill includes intelligent handling for large files by offloading assets to a dedicated directory, ensuring compatibility with GitHub's file size limits.
What it does
- Detects input file types including PPTX, PDF, HTML, and Google Slides URLs.
- Converts presentation files into web-compatible HTML structures.
- Manages large files by automatically splitting assets into a separate directory.
- Automates the creation of GitHub repositories via the CLI.
- Configures and enables GitHub Pages for the newly created repository.
- Provides the final live URL and repository link to the user.
When to use it
- When you need to quickly share a presentation or document as a live website.
- When you want to host a static HTML file on GitHub Pages without manual configuration.
- When you have a Google Slides presentation that needs to be published as a web page.
- When you need to convert large PDF or PPTX files into a navigable web format.
Advantages
- Reduces manual effort by automating repository setup and deployment.
- Handles large files automatically to avoid GitHub storage limitations.
- Supports multiple common document formats for broad compatibility.
- Provides a consistent, repeatable workflow for web publishing.
Usage examples
- “Publish my presentation.pptx to GitHub Pages.”
- The agent will convert the PPTX to HTML, create a new public repository, push the files, and provide the live URL.
- “I have a Google Slides link, can you put it on GitHub Pages?”
- The agent will download the slides as PPTX, convert them to HTML, and deploy them to a new GitHub repository.
Install
Download the skill as a ZIP:
https://mp-staging.autogineer.com/agent-skills/github/publish-to-pages/downloadUnzip it into the cross-client skills folder of your project:
mkdir -p .agents/skills && unzip publish-to-pages.zip -d .agents/skills
Documentation by AndreaGriffiths11
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-assetsIf python-pptx is missing, tell the user: pip install python-pptx
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-assetsEach 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
Extract the presentation ID from the URL (the long string between
/d/and/)Download as PPTX:
curl -L "https://docs.google.com/presentation/d/PRESENTATION_ID/export/pptx" -o /tmp/slides.pptxThen 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_NAMELive 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-utilsorbrew install poppler).Google Slides download fails: The presentation may not be publicly accessible. Ask user to make it viewable or download the PPTX manually.
Files
- ATTRIBUTION.mdAdded by AutoGineer883 B
- LICENSELicence file added by AutoGineer1.0 KiB
- SKILL.md4.4 KiB
- scripts/convert-pdf.pyScript6.6 KiB
- scripts/convert-pptx.pyScript13.1 KiB
- scripts/publish.shScript1.4 KiB
Requirements and compatibility
Written for: GitHub Copilot
Works with: Claude Code, Claude apps, OpenAI Codex, GitHub Copilot, Cursor, Gemini CLI, Kiro, OpenCode, Goose, Amp, Roo Code, JetBrains Junie, Factory Droid, Devin (ex-Windsurf), Mistral Vibe, OpenHands, Letta
“Works with” means the tool reads the open Agent Skills format; a skill written for one tool may use features others lack.
Needs: Needs network access, Needs a command-line tool, Needs Python
Security
What our scanner noticed· Low risk
- Instructions that use the network
- Scripts that your agent may run
This skill includes scripts that your agent may run. Read them before you use it.
A static scan is not a guarantee. Skills are third-party content: review a skill before you let an agent use it.
Attribution and licence
- First committed by
AndreaGriffiths11
- Publisher
- GitHub (Official)
- Distributed by
- GitHub
- Source
- github/awesome-copilot · skills/publish-to-pages · commit 797337f
- Licence
- MIT License (redistribution allowed)
- LICENSE (added by AutoGineer from LICENSE)
- ATTRIBUTION.md (written by AutoGineer)
- Synced
- Contributors
- AndreaGriffiths11
AutoGineer is not affiliated with or endorsed by AndreaGriffiths11 or GitHub.
Download ZIP
The ZIP holds the skill’s files, its licence files and an ATTRIBUTION.md. Download publish-to-pages.zip