Skip to content

Add publish-to-pages agent skill#1035

Merged
aaronpowell merged 2 commits intogithub:stagedfrom
AndreaGriffiths11:add-publish-to-pages-skill
Mar 17, 2026
Merged

Add publish-to-pages agent skill#1035
aaronpowell merged 2 commits intogithub:stagedfrom
AndreaGriffiths11:add-publish-to-pages-skill

Conversation

@AndreaGriffiths11
Copy link
Copy Markdown
Contributor

@AndreaGriffiths11 AndreaGriffiths11 commented Mar 17, 2026

Agent skill that publishes presentations and web content to GitHub Pages. Works with any AI coding agent (Copilot CLI, Claude Code, Gemini CLI, etc.)

Features:

  • Converts PPTX and PDF with full formatting preservation
  • Creates repo, enables Pages, returns live URL
  • Zero config — just needs gh CLI

Pull Request Checklist

  • I have read and followed the CONTRIBUTING.md guidelines.
  • I have read and followed the Guidance for submissions involving paid services.
  • My contribution adds a new instruction, prompt, agent, skill, or workflow file in the correct directory.
  • The file follows the required naming convention.
  • The content is clearly structured and follows the example format.
  • I have tested my instructions, prompt, agent, skill, or workflow with GitHub Copilot.
  • I have run npm start and verified that README.md is up to date.

Description


Type of Contribution

  • New instruction file.
  • New prompt file.
  • New agent file.
  • New plugin.
  • New skill file.
  • New agentic workflow.
  • Update to existing instruction, prompt, agent, plugin, skill, or workflow.
  • Other (please specify):

Additional Notes


By submitting this pull request, I confirm that my contribution abides by the Code of Conduct and will be licensed under the MIT License.

AndreaGriffiths11 and others added 2 commits March 17, 2026 00:16
Agent skill that publishes presentations and web content to GitHub Pages.
Works with any AI coding agent (Copilot CLI, Claude Code, Gemini CLI, etc.)

Features:
- Converts PPTX and PDF with full formatting preservation
- Creates repo, enables Pages, returns live URL
- Zero config — just needs gh CLI

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
@AndreaGriffiths11 AndreaGriffiths11 marked this pull request as ready for review March 17, 2026 00:35
Copilot AI review requested due to automatic review settings March 17, 2026 00:35
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR adds a new publish-to-pages agent skill that publishes presentations and web content to GitHub Pages. It includes conversion scripts for PPTX and PDF files and a shell script to create a repo and enable Pages.

Changes:

  • New skill with SKILL.md defining the workflow for converting and publishing content to GitHub Pages
  • Python scripts for converting PPTX (via python-pptx) and PDF (via pdftoppm) files to self-contained HTML presentations
  • Shell script to create a GitHub repo, push content, and enable GitHub Pages
  • Updated docs/README.skills.md to list the new skill

Reviewed changes

Copilot reviewed 5 out of 5 changed files in this pull request and generated 6 comments.

Show a summary per file
File Description
skills/publish-to-pages/SKILL.md Skill definition with front matter, prerequisites, input detection, conversion steps, publishing instructions, and error handling
skills/publish-to-pages/scripts/publish.sh Shell script to create a GitHub repo, push an HTML file, and enable GitHub Pages
skills/publish-to-pages/scripts/convert-pptx.py Python script converting PPTX to a self-contained HTML slideshow with formatting preservation
skills/publish-to-pages/scripts/convert-pdf.py Python script converting PDF pages to base64-embedded PNG images in an HTML slideshow
docs/README.skills.md Adds the new skill entry to the skills listing

You can also share your feedback on Copilot code review. Take the survey.

sys.exit(1)

# Check for pdftoppm
if subprocess.run(["which", "pdftoppm"], capture_output=True).returncode != 0:
Comment on lines +25 to +26
except:
return None
Comment on lines +8 to +20
VISIBILITY="${3:-public}"
DESCRIPTION="${4:-Published via publish-to-pages}"

USERNAME=$(gh api user --jq '.login')

# Check if repo exists
if gh repo view "$USERNAME/$REPO_NAME" &>/dev/null; then
echo "ERROR: Repository $USERNAME/$REPO_NAME already exists"
exit 1
fi

# Create repo
gh repo create "$REPO_NAME" --"$VISIBILITY" --description "$DESCRIPTION"
Comment on lines +23 to +26
TMPDIR=$(mktemp -d)
git clone "https://github.com/$USERNAME/$REPO_NAME.git" "$TMPDIR"
cp "$HTML_FILE" "$TMPDIR/index.html"
cd "$TMPDIR"
Comment on lines +224 to +233
if hasattr(shape, "text") and shape.text.strip() and len(shape.text.strip()) < 150:
title = shape.text.strip()
break

html = f'''<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>{title}</title>
Comment on lines +60 to +67
title = Path(pdf_path).stem.replace("-", " ").replace("_", " ")

html = f'''<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>{title}</title>
@aaronpowell aaronpowell merged commit 4ad31b6 into github:staged Mar 17, 2026
12 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants