Skip to main content
skill GitHub Copilot official · GitHub

publish-to-pages — GitHub Copilot skill: publish to Pages

Publishes presentations and HTML content to GitHub Pages by creating a repository and returning a live page address. Use it when files need to be shared as a web page.

Install into GitHub Copilot · Skills CLI (Vercel) All methods and platforms ↓
npx skills add github/awesome-copilot --skill publish-to-pages
Open on GitHub

What publish-to-pages does

The skill accepts HTML, PPTX, PDF, or a Google Slides link. It uses an HTML file as index.html; PPTX goes through convert-pptx.py, while convert-pdf.py renders PDF pages as PNGs in an HTML slide viewer. For Google Slides, it downloads a PPTX first and then runs the presentation converter.

It checks for gh, GitHub authentication, and python3 before publishing. The publish.sh script creates a repository, pushes the generated HTML, and enables GitHub Pages. Large PPTX or PDF inputs can place images in assets/ to stay below GitHub's 100MB file limit. PPTX conversion needs python-pptx; PDF conversion needs poppler-utils with pdftoppm.

Repositories are public by default. Private Pages repositories require a Pro, Team, or Enterprise plan, so check that before using private visibility. Install this skill if GitHub Pages is your publishing path; skip it when you want to configure a site by hand.

What it helps with

  • publish an HTML file through GitHub Pages
  • convert a PPTX into a slide web page
  • turn a PDF into navigable HTML slides
  • export Google Slides for Pages publishing
  • move large-file resources into assets/

Example prompts for the agent

  • “Publish `demo.pptx` to GitHub Pages in a repository named `demo-slides`.”
  • “Put `report.pdf` online as a public GitHub Pages site.”
  • “Download this Google Slides presentation and publish it to the private `team-deck` repository.”

How to install publish-to-pages

1Skills CLI (Vercel)

npx skills add github/awesome-copilot --skill publish-to-pages

2GitHub CLI

gh skill install github/awesome-copilot publish-to-pages

3Manually: put the files in place

.github/skills/publish-to-pages/SKILL.md

From the same set554

The whole set →
git-commit official github This skill reviews Git changes, stages related files, and creates Conventional Commits. Use it when you want an agent to make one commit or split work into separate commits. GitHub Copilot 47,165installs excalidraw-diagram-generator official github Turn a plain-language description into an Excalidraw diagram. Useful for mapping processes, system structure, and relationships between entities. GitHub Copilot 31,639installs multi-stage-dockerfile official github This skill guides GitHub Copilot in writing multi-stage Dockerfiles for different languages and frameworks. Use it when the final runtime image should contain fewer build dependencies. GitHub Copilot 29,688installs documentation-writer official github Skill that turns the agent into a technical writer following the Diátaxis framework: tutorials, how-to guides, reference, and explanation. Proposes structure before writing. GitHub Copilot 27,757installs prd official github Turns a feature idea into a structured PRD with user stories, technical requirements, and risks. Use it when planning a software feature or an AI-powered one. GitHub Copilot 24,035installs refactor official github This skill reshapes existing code without changing its external behavior. Use it for gradual cleanup of large functions, duplication, weak types, and code smells. GitHub Copilot 22,321installs java-springboot official github Gives GitHub Copilot Spring Boot development practices, from project layout to tests and security. Use it when writing or reviewing Java application code. GitHub Copilot 21,272installs create-readme official github This skill reviews a project and creates a structured README.md. Use it when the repository needs clear documentation based on its actual files and code. GitHub Copilot 19,081installs

Similar

minimax-docx nexu-io A skill for creating and editing DOCX files with OpenXML SDK. Handy for branded reports, proposals, and template-based documents. Claude Code CX Codex Cursor +1 2,700installs powerpoint Nous Research Creates, reads, and edits .pptx presentations with python-pptx. Use it for slide decks, extracting presentation content, and template-based updates. Claude Code CX Codex Cursor +1 751installs file-conversion Seth Hobson Converts local media, documents, and data formats using tools already installed on your machine. Prevents uploading files to third-party APIs. Claude Code CX Codex Cursor 3,100installs pptx official anthropics This skill helps create, read, and edit .pptx files and .potx templates. Use it when building a deck or extracting slide text. Claude Code Claude.ai 241,433installs pdf official anthropics This skill lets an agent read, create, and edit PDF files, including forms and scanned documents. Use it when PDF work is part of the task. Claude Code Claude.ai 216,041installs docx official anthropics This skill creates, reads, and edits Word documents and templates. Use it for reports, letters, and files that need headings, tables, or page numbers. Claude Code Claude.ai 206,304installs xlsx official anthropics Creates, reads, edits, and converts spreadsheet files. Use it when the requested deliverable is an Excel workbook or another tabular file. Claude Code Claude.ai 187,223installs brand-guidelines official anthropics Applies Anthropic's official brand colors and fonts to documents, slides and other artifacts. Useful whenever something needs to match the company look. Claude Code Claude.ai 109,043installs

Questions about publish-to-pages

How do I install publish-to-pages in GitHub Copilot?

Run npx skills add github/awesome-copilot --skill publish-to-pages. You can also use gh skill install github/awesome-copilot publish-to-pages.

What does publish-to-pages do?

It prepares HTML, PPTX, PDF, and Google Slides content for GitHub Pages. The skill creates a repository, pushes the output, enables Pages, and returns the published page address.

What is required to convert PPTX and PDF files?

PPTX conversion needs python3 and python-pptx, installable with pip install python-pptx. PDF conversion requires poppler-utils, which provides pdftoppm.

Source text

SKILL.md · MIT
---
name: publish-to-pages
description: '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.'
---

# publish-to-pages

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

## 1. Prerequisites Check

Run these silently. Only surface errors:

```bash
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:
```bash
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`):
```bash
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:
```bash
curl -L "https://docs.google.com/presentation/d/PRESENTATION_ID/export/pptx" -o /tmp/slides.pptx
```
3. 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
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.

© github · MIT · github/awesome-copilot

See also

Project sponsors

Companies that keep this analytics open
Gold sponsor

Impressions, clicks and code copies — open statistics. We keep the numbers public for the same reason NeBlask itself is public. Become a sponsor