publish-to-pages
$
npx mdskill add github/awesome-copilot/publish-to-pagesDeploy presentations and web content instantly to a live, shareable GitHub Pages URL.
- Publishes various content types, including PPTX, PDF, HTML, and Google Slides, for easy sharing.
- Integrates with GitHub CLI and handles file conversion processes for deployment.
- Automatically detects input format and prompts for a repository name if one is missing.
- Returns the final, accessible live URL after successfully enabling GitHub Pages.
SKILL.md
.github/skills/publish-to-pagesView on GitHub ↗
--- 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.
More from github/awesome-copilot
- acquire-codebase-knowledgeUse this skill when the user explicitly asks to map, document, or onboard into an existing codebase. Trigger for prompts like "map this codebase", "document this architecture", "onboard me to this repo", or "create codebase docs". Do not trigger for routine feature implementation, bug fixes, or narrow code edits unless the user asks for repository-level discovery.
- acreadiness-assessRun the AgentRC readiness assessment on the current repository and produce a static HTML dashboard at reports/index.html. Wraps `npx github:microsoft/agentrc readiness` and hands off rendering to the @ai-readiness-reporter custom agent. Supports policies (--policy) for org-specific scoring. Use when asked to assess, audit, or score the AI readiness of a repo.
- acreadiness-generate-instructionsGenerate tailored AI agent instruction files via AgentRC instructions command. Produces .github/copilot-instructions.md (default, recommended for Copilot in VS Code) plus optional per-area .instructions.md files with applyTo globs for monorepos. Use after running /acreadiness-assess to close gaps in the AI Tooling pillar.
- acreadiness-policyHelp the user pick, write, or apply an AgentRC policy. Policies customise readiness scoring by disabling irrelevant checks, overriding impact/level, setting pass-rate thresholds, or chaining org baselines with team overrides. Use when the user asks about strict mode, AI-only scoring, custom weights, CI gating, or wants org-wide standardisation.
- add-educational-comments'Add educational comments to the file specified, or prompt asking for file to comment if one is not provided.'
- adobe-illustrator-scriptingWrite, debug, and optimize Adobe Illustrator automation scripts using ExtendScript (JavaScript/JSX). Use when creating or modifying scripts that manipulate documents, layers, paths, text frames, colors, symbols, artboards, or any Illustrator DOM objects. Covers the complete JavaScript object model, coordinate system, measurement units, export workflows, and scripting best practices.
- agent-governance|
- agent-owasp-compliance|
- agent-supply-chain|
- agentic-eval|