publish-to-pages

Par github · awesome-copilot

Publie des présentations et du contenu web sur GitHub Pages. Convertit des fichiers PPTX, PDF, HTML ou Google Slides en une URL GitHub Pages accessible en ligne. Gère la création du dépôt, la conversion des fichiers, l'activation de Pages et retourne l'URL en direct. À utiliser lorsque l'utilisateur souhaite publier, déployer ou partager une présentation ou un fichier HTML via GitHub Pages.

npx skills add https://github.com/github/awesome-copilot --skill publish-to-pages

publish-to-pages

Publier n'importe quelle présentation ou contenu web sur GitHub Pages en une seule étape.

1. Vérification des prérequis

Exécute ces commandes silencieusement. N'affiche que les erreurs :

command -v gh >/dev/null || echo "MISSING: gh CLI — installer depuis https://cli.github.com"
gh auth status &>/dev/null || echo "MISSING: gh non authentifié — lancer 'gh auth login'"
command -v python3 >/dev/null || echo "MISSING: python3 (requis pour la conversion PPTX)"

poppler-utils est facultatif (conversion PDF via pdftoppm). N'en bloque pas l'exécution.

2. Détection de l'entrée

Détermine le type d'entrée à partir de ce que l'utilisateur fournit :

Entrée Détection
Fichier HTML Extension .html ou .htm
Fichier PPTX Extension .pptx
Fichier PDF Extension .pdf
URL Google Slides L'URL contient docs.google.com/presentation

Demande à l'utilisateur un nom de repo s'il n'est pas fourni. Par défaut : nom du fichier sans extension.

3. Conversion

Gestion des fichiers volumineux

Les deux scripts de conversion détectent automatiquement les fichiers volumineux et basculent en mode assets externes :

  • PPTX : Fichiers >20 MB ou contenant >50 images → images sauvegardées comme fichiers séparés dans assets/
  • PDF : Fichiers >20 MB ou contenant >50 pages → PNGs de pages sauvegardés dans assets/
  • Fichiers >150 MB affichent un avertissement (PPTX suggère le chemin PDF à la place)

Cela maintient les fichiers individuels bien en dessous de la limite de 100 MB de GitHub. Les petits fichiers produisent toujours un seul HTML autonome.

Tu peux forcer le comportement avec --external-assets ou --no-external-assets.

HTML

Aucune conversion nécessaire. Utilise le fichier directement comme index.html.

PPTX

Exécute le script de conversion :

python3 SKILL_DIR/scripts/convert-pptx.py INPUT_FILE /tmp/output.html
# Pour les fichiers volumineux, force les assets externes :
python3 SKILL_DIR/scripts/convert-pptx.py INPUT_FILE /tmp/output.html --external-assets

Si python-pptx est manquant, informe l'utilisateur : pip install python-pptx

PDF

Convertis avec le script inclus (nécessite poppler-utils pour pdftoppm) :

python3 SKILL_DIR/scripts/convert-pdf.py INPUT_FILE /tmp/output.html
# Pour les fichiers volumineux, force les assets externes :
python3 SKILL_DIR/scripts/convert-pdf.py INPUT_FILE /tmp/output.html --external-assets

Chaque page est rendue en tant que PNG et intégrée en HTML avec navigation par diapositives. Si pdftoppm est manquant, informe l'utilisateur : apt install poppler-utils (ou brew install poppler sur macOS).

Google Slides

  1. Extrais l'ID de présentation de l'URL (la longue chaîne entre /d/ et /)
  2. Télécharge en tant que PPTX :
    curl -L "https://docs.google.com/presentation/d/PRESENTATION_ID/export/pptx" -o /tmp/slides.pptx
  3. Convertis ensuite le PPTX en utilisant le script de conversion ci-dessus.

4. Publication

Visibilité

Les repos sont créés publics par défaut. Si l'utilisateur spécifie private (ou souhaite un repo privé), utilise --private — mais note que GitHub Pages sur les repos privés nécessite un plan Pro, Team ou Enterprise.

Publier

bash SKILL_DIR/scripts/publish.sh /path/to/index.html REPO_NAME public "Description"

Passe private à la place de public si l'utilisateur le demande.

Le script crée le repo, pousse index.html (plus assets/ s'il est présent), et active GitHub Pages.

Note : Quand le mode assets externes est utilisé, le HTML de sortie référence les fichiers dans assets/. Le script de publication détecte et copie automatiquement le répertoire assets/ aux côtés du fichier HTML. Assure-toi que le fichier HTML et son répertoire assets/ sont dans le même répertoire parent.

5. Résultat

Informe l'utilisateur :

  • Repository : https://github.com/USERNAME/REPO_NAME
  • URL en direct : https://USERNAME.github.io/REPO_NAME/
  • Note : Pages prend 1-2 minutes avant d'être en ligne.

Gestion des erreurs

  • Le repo existe déjà : Suggère d'ajouter un numéro (my-slides-2) ou une date (my-slides-2026).
  • L'activation de Pages échoue : Retourne quand même l'URL du repo. L'utilisateur peut activer Pages manuellement dans les Paramètres du repo.
  • La conversion PPTX échoue : Informe l'utilisateur d'exécuter pip install python-pptx.
  • La conversion PDF échoue : Suggère d'installer poppler-utils (apt install poppler-utils ou brew install poppler).
  • Le téléchargement Google Slides échoue : La présentation peut ne pas être publiquement accessible. Demande à l'utilisateur de la rendre consultable ou de télécharger le PPTX manuellement.

Skills similaires