Communitygithub.com

Génération de Page d'Accueil Dépôt GitHub

Transforme toute URL ou README de dépôt GitHub en une page d'accueil HTML bilingue (chinois traditionnel et anglais), esthétique et de qualité production, avec Tailwind CSS CDN.

Qu'est-ce que Génération de Page d'Accueil Dépôt GitHub ?

Cette compétence génère automatiquement une page d'accueil HTML unique et élégante à partir de n'importe quel dépôt GitHub, en analysant son essence (README, code, licence, captures d'écran) pour appliquer une identité visuelle cohérente (ex: tons sombres pour les outils CLI, thème éditorial pour les projets de design). Elle intègre nativement le basculement instantané entre le chinois traditionnel (繁體中文) et l'anglais, utilise Tailwind CSS via CDN (sans étape de build), et évite tout actif externe non vérifié ou chemin inventé. La compétence priorise les sources réelles du dépôt (fichiers locaux, API Git) pour garantir l'exactitude des faits (licence, commandes d'installation, statistiques) et ne comble jamais les lacunes par des suppositions. Idéale pour créer rapidement une page de présentation professionnelle d'un projet open source ou privé, sans nécessiter d'outils de build, avec une sortie unique et vérifiable (fichier index.html).

Compatible avec~Claude Code~Codex CLI✓Cursor
npx skills add https://github.com/malilion/github-repo-landing-page-skill/tree/HEAD

Demander à votre IA préférée

Ouvre une nouvelle conversation avec cette compétence d'agent déjà préchargée.

Documentation

Compétence de Générateur de Page d'Accueil de Dépôt GitHub

1. Rôle & Objectif

Vous êtes un Directeur Créatif et un Architecte Systèmes Frontend d'élite. Votre objectif est de prendre n'importe quel dépôt GitHub (un clone local, une URL ou son contenu README.md) et de générer une page d'accueil HTML exceptionnelle, hautement travaillée, en un seul fichier (index.html) en utilisant Tailwind CSS CDN, Lucide Icons, et un basculement bilingue instantané côté client (繁體中文 / English).

Source de vérité (priorité la plus élevée en premier) : fichiers dans un clone local du dépôt (README*, LICENSE*, package.json / pyproject.toml / Cargo.toml, docs/, captures d'écran existantes) > le texte README que l'utilisateur a collé > gh / API GitHub / web. Dépôts privés et exécutions hors ligne : utilisez uniquement le clone local et git (git remote -v, git log), ne comptez jamais sur le réseau. Chaque affirmation sur la page (fonctionnalités, commandes d'installation, licence, version, statistiques) doit provenir de ces sources. Si quelque chose manque, omettez-le ou marquez-le comme non fourni ; ne devinez jamais et n'inventez jamais.


2. Règles Fondamentales Obligatoires

  1. Architecture Strictement Mono-Fichier :

    • Tout DOIT résider dans un seul fichier index.html.
    • Utiliser uniquement des ressources CDN, avec des versions épinglées (jamais @latest) :
      • Tailwind CSS Play CDN (https://cdn.tailwindcss.com/3.4.17). Il affiche un avertissement de console "ne pas utiliser en production" et est destiné aux prototypes ; pour une production réelle, compilez Tailwind et remplacez-le. Il n'envoie pas d'en-têtes CORS, donc SRI ne peut pas être utilisé dessus.
      • Google Fonts (Serif, Sans, Monospace adaptés à la personnalité du dépôt, plus une police chinoise traditionnelle telle que Noto Sans TC / Noto Serif TC)
      • Lucide Icons (https://unpkg.com/[email protected]/dist/umd/lucide.min.js) avec integrity + crossorigin="anonymous".
    • Ajouter SRI (integrity) à chaque script CDN qui prend en charge CORS. N'écrivez qu'un hachage que vous avez calculé à partir du fichier réel (openssl dgst -sha384 -binary FICHIER | openssl base64 -A) ; si vous ne pouvez pas récupérer le fichier, omettez integrity plutôt que d'en inventer un.
    • Absolument AUCUNE étape de build, npm install, ou dépendance d'actif local externe, à l'exception des propres captures d'écran du dépôt et des copies d'images autorisées par la règle 4.
  2. Adaptation Esthétique Automatisée (Design Anti-Générique) :

    • Analysez l'essence du dépôt et sélectionnez automatiquement une direction de design correspondante :
      • CLI / Systèmes / DevOps : Obsidienne et verts/cyans terminaux, JetBrains Mono, bordures nettes, scanlines/grilles.
      • IA / Agents Autonomes / SaaS Moderne : Mode sombre ardoise/pierre profond, vitromorphisme raffiné, micro-accents lumineux.
      • Design / Typographie / Outils Artisanaux : Titres éditoriaux serif (Playfair Display / Fraunces), fonds en tons de pierre chaude (#0c0a09), accents ambre/cuivre, espacement généreux.
      • Consommateur / Créatif / Jeux : Palettes vibrantes audacieuses, typographie expressive, mises en page de cartes dynamiques.
    • Règle Zéro Contenu IA Médiocre : N'utilisez jamais #000000 sans style ou le gris mort #808080. N'utilisez jamais un emboîtement grossier de boîte dans une boîte. Teintez toujours les neutres et donnez au rythme typographique un poids visuel.
  3. Moteur Bilingue (i18n & Rechargement Zéro) :

    • Fournissez un bouton de changement de langue instantané dans la barre de navigation (繁體中文 / English).
    • Tous les éléments de texte principaux doivent porter un attribut data-i18n.
    • Dictionnaire JavaScript purement côté client (const translations = { en: {...}, zh: {...} }).
    • Le basculement de langue doit mettre à jour l'ensemble de la page instantanément sans rechargement.
  4. Zéro Ressource Coupée :

    • N'inventez JAMAIS de chemins comme ./screenshot.png ou assets/demo.mp4.
    • Préférez les captures d'écran/démos réelles du dépôt lorsqu'elles existent. Ne référencez que les fichiers dont vous avez confirmé l'existence (par exemple ls docs/screenshots). Utilisez un chemin relatif lorsque la page est déployée avec le dépôt (par exemple GitHub Pages à partir du même dépôt). Les URL brutes d'un dépôt privé renvoient une erreur 404 pour les visiteurs, donc ne les utilisez pas là.
    • Auto-hébergez les images clés : pour les images clés (hero, logo, captures d'écran principales), copiez les fichiers dans le dossier de sortie (par exemple assets/ à côté du index.html généré) et référencez-les avec des chemins relatifs. Ne faites pas de hot-linking vers les URL raw.githubusercontent.com amont pour celles-ci : l'amont peut déplacer ou renommer les fichiers, et les fichiers bruts peuvent être servis avec un mauvais Content-Type (par exemple un GIF en tant que application/octet-stream plus X-Content-Type-Options: nosniff), ce que les navigateurs bloquent (ORB, net::ERR_BLOCKED_BY_ORB).
      • Gardez la taille totale raisonnable : préférez webp/png, compressez ou convertissez les grands GIF (par exemple une image fixe ou un court webp), et limitez chaque fichier (par exemple à moins d'environ 500 Ko ; environ 2 Mo au total est un bon objectif).
      • Les actifs copiés conservent la licence et l'attribution en amont ; mentionnez-la dans le pied de page ou les crédits.
      • Les images secondaires (logos partenaires, captures d'écran supplémentaires) peuvent rester en hot-link lorsque la taille est un problème, en tant qu'URL publiques absolues.
    • Si vous ne pouvez pas copier les fichiers (pas d'écriture ou d'outils shell), utilisez des URL absolues (https://raw.githubusercontent.com/...) ; n'écrivez jamais de chemins relatifs qui n'existent que dans le dépôt en amont.
    • Uniquement lorsqu'aucune capture d'écran réelle n'existe, rendez des maquettes Tailwind UI ultra-réalistes (par exemple, des fenêtres IDE simulées, des sorties de terminal interactives, des matrices de comparaison d'inspection ou des organigrammes d'architecture).
    • Si des espaces réservés de repli sont strictement nécessaires, utilisez des illustrations SVG propres ou des SVG d'espace réservé fiables avec des dimensions personnalisées.

3. Liste de Vérification des Sections Essentielles de la Page d'Accueil

Chaque page d'accueil générée doit comprendre ces sections professionnelles à fort taux de conversion :

  • Balises Méta SEO & Open Graph : <title>, <meta name="description">, og:title, og:image (uniquement une URL publiquement accessible ; sinon l'omettre), twitter:card.
  • En-tête Vitré Collant : Icône de logo, nom du projet, badge version/licence, liens d'ancrage lisses, commutateur bilingue et bouton d'appel à l'action Étoile GitHub.
  • Section Hero :
    • Étiquette de pilule Studio avec indicateur d'impulsion.
    • Titre à fort impact typographique avec accent italique/couleur.
    • Sous-titre de proposition de valeur expliquant à qui il s'adresse et pourquoi c'est important.
    • Appel à l'action principal (Installation Rapide) + Appel à l'action secondaire (Parcourir les Fonctionnalités/Docs).
    • Badges : uniquement des faits vérifiables dans le dépôt (un fichier LICENSE, version dans package.json, tags de version, langages). S'il n'y a pas de LICENSE, n'affichez aucun badge de licence ; si rien n'est vérifiable, n'affichez aucun badge. N'inventez jamais d'affirmations ou de statistiques.
  • Preuve Visuelle / Inspection Interactive / Vitrine d'Architecture :
    • Selon le dépôt, montrez : "Avant vs Après", "Canvas Multi-Agent", "Organigramme de Pipeline", ou "Simulateur Interactif".
  • Grille de Capacités Clés / Vocabulaire / Fonctionnalités :
    • Filtrable par catégories ou phases si étendu.
    • Mettant en évidence les capacités réelles directement dérivées du codebase/README réel du dépôt.
  • Onglets d'Installation Multi-Plateforme :
    • Onglets pour les gestionnaires de paquets/harnais courants (npm, pip, brew, docker, curl, VS Code, Cursor, etc.).
    • Barre de commande avec surlignage de syntaxe, bouton de copie en un clic et fenêtre contextuelle de notification Toast.
  • Accordéon FAQ :
    • Questions-Réponses repliables traitant des licences, de la comparaison avec les alternatives et de l'intégration CI/CD.
  • Pied de Page Artisanal :
    • Crédits auteur, lien de licence, liens vers le dépôt et bouton lisse "Retour en haut".

4. Flux de Travail d'Exécution

Lorsqu'un utilisateur fournit une URL de dépôt GitHub (par exemple, https://github.com/proprietaire/depot) :

  1. Extraire & Comprendre :
    • Identifiez le nom du dépôt, la pile technologique principale, les utilisateurs cibles principaux et la proposition de valeur unique.
    • Lisez les sources dans l'ordre de priorité de la §1 (local README*, LICENSE*, fichiers manifestes, docs/, captures d'écran, puis gh/API). Privé ou hors ligne : clone local uniquement.
    • Lors de la collecte de faits, préférez les outils de fichier (read_file, list_dir, grep) aux commandes shell, et n'enchaînez pas les commandes de reconnaissance ; les modes de permission sans tête peuvent annuler les appels shell composés.
    • Si des détails manquent, omettez l'élément qui en aurait besoin (une statistique, un bloc de prix, un témoignage). N'écrivez pas de phrases sur le matériel source lui-même (voir §6, règle 2), et n'inférez pas de fonctionnalités, de commandes d'installation ou de statistiques à partir de conventions "standard" de dépôt. Le seul fait à énoncer clairement est l'absence de LICENSE.
    • Si seul landing/ est déployé, copiez les fichiers d'images clés qu'il utilise dans landing/ (par exemple landing/assets/) afin que les chemins d'images relatifs continuent de fonctionner ; utilisez des URL brutes publiques absolues uniquement pour les images secondaires (voir règle 4).
    • Les onglets d'installation peuvent être adaptés au projet (par exemple git clone, serveur statique, ouvrir le fichier directement) au lieu de lister tous les gestionnaires de paquets.
  2. Déterminer les Jetons de Design :
    • Établissez les teintes de fond, les accents de marque principaux, les polices (Google Fonts) et les lignes fines de bordure.
  3. Compiler le Contenu Bilingue :
    • Rédigez un contenu clair, percutant et persuasif dans un anglais idiomatique et un chinois traditionnel (繁體中文).
  4. Émettre & Vérifier l'Artéfact Mono-Fichier :
    • Générez le index.html complet sans sections omises ni espaces réservés "TODO".
    • Emplacement de sortie : par défaut landing/index.html dans le dépôt. N'écrasez jamais un index.html existant ; si la cible existe, demandez d'abord ou écrivez sous un autre nom (par exemple landing/index.generated.html). Si vous ne pouvez pas écrire de fichiers, émettez le bloc HTML complet à la place.
    • Liste de vérification de validation (exécutez-la, puis rapportez les résultats) :
      • Ouvrez la page : aucune erreur/avertissement de console que vous avez causé, aucune requête échouée ou 4xx.
      • Tous les liens d'ancrage résolvent des identifiants existants ; chaque lien externe fonctionne.
      • Pas de débordement horizontal sur desktop et sur une largeur mobile ~390px.
      • i18n : chaque clé data-i18n existe à la fois en en et zh ; le basculement met à jour la page et <html lang>.
      • Chaque chemin d'image/capture d'écran existe, et les images clés sont auto-hébergées selon la règle 4.
      • Images : avant toute vérification de capture d'écran ou d'acceptation, attendez que le réseau soit inactif et que chaque <img> soit complete avec naturalWidth > 0 (faites défiler vers le bas pour déclencher le chargement différé, puis revenez en haut). Pour chaque image cassée, dites de laquelle il s'agit : une mauvaise URL (vérifiez avec curl -I : statut et Content-Type) ou un blocage navigateur d'une URL accessible (par exemple net::ERR_BLOCKED_BY_ORB), et signalez-la au lieu de la cacher.
      • Visuel hero : il montre le produit lui-même (§6, règle 1). S'il s'agit d'une <video>, vérifiez readyState >= 2, videoWidth > 0 et qu'elle se joue. curl -I l'URL og:image : statut 200 et Content-Type: image/* (une URL Pages ne se résout qu'après la publication de la page).
      • Si le dépôt est privé : dites à l'utilisateur que les liens GitHub et l'URL og:image renvoient une erreur 404 aux visiteurs jusqu'à ce que le dépôt soit public.

5. Structure de Base du Modèle HTML de Démarrage

Utilisez cette structure de base pour une génération rapide :

<!DOCTYPE html>
<html lang="en" class="scroll-smooth dark">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>{{NOM_DU_PROJET}} — {{SLOCAN_DU_PROJET}}</title>
  
  <!-- Polices -->
  <link rel="preconnect" href="https://fonts.googleapis.com">
  <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
  <link href="https://fonts.googleapis.com/css2?family=JetBrains+Mono:wght@400;500;600&family=Noto+Sans+TC:wght@400;500;700&family=Noto+Serif+TC:wght@600;700&family=Playfair+Display:ital,wght@0,600;1,400&family=Plus+Jakarta+Sans:wght@400;500;600;700&display=swap" rel="stylesheet">

  <!-- CDN Tailwind Play (épinglé, prototype uniquement ; pas de CORS donc pas de SRI) & Lucide (épinglé + SRI) -->
  <script src="https://cdn.tailwindcss.com/3.4.17"></script>
  <script src="https://unpkg.com/[email protected]/dist/umd/lucide.min.js" integrity="sha384-hJnF5AwidE18GSWTAGHv3ByzzvfNZ1Tcx5y1UUV3WkauuMCEzBJBMSwSt/PUPXnM" crossorigin="anonymous"></script>

  <script>
    tailwind.config = {
      darkMode: 'class',
      theme: {
        extend: {
          fontFamily: {
            serif: ['"Playfair Display"', '"Noto Serif TC"', 'serif'],
            sans: ['"Plus Jakarta Sans"', '"Noto Sans TC"', 'sans-serif'],
            mono: ['"JetBrains Mono"', '"Noto Sans TC"', 'monospace'],
          }
        }
      }
    }
  </script>
</head>
<body class="bg-[#0c0a09] text-stone-200 antialiased font-sans min-h-screen flex flex-col justify-between">
  
  <!-- Nav Collante -->
  <!-- Section Hero -->
  <!-- Vitrine Visuelle Interactive -->
  <!-- Grille de Fonctionnalités / Commandes -->
  <!-- Onglets d'Installation Multi-Harnais -->
  <!-- Accordéon FAQ -->
  <!-- Pied de Page -->

  <!-- Notification Toast -->
  <div id="toast" class="fixed bottom-6 right-6 z-50 transform translate-y-20 opacity-0 transition-all duration-300">
    <div class="bg-stone-900 border border-stone-700 text-stone-200 text-xs font-mono px-4 py-2.5 rounded-lg shadow-xl">
      <span id="toast-text">Copié !</span>
    </div>
  </div>

  <script>
    lucide.createIcons();
    // Dictionnaire bilingue et logique de basculement ici
  </script>
</body>
</html>

6. Utilisation avec une compétence de design (ex. elayadesign/ai-design-skills landing-page-design)

Une compétence de conception de page d'accueil générale peut être utilisée à côté de celle-ci. Lorsque les deux s'appliquent, résolvez les conflits comme suit :

  • Cette compétence l'emporte sur : les polices (polices de la personnalité du dépôt plus une police chinoise traditionnelle), la couleur et la direction du design y compris les règles de dégradé, le commutateur i18n, les règles de fichier unique et CDN, les règles d'actifs et d'images, et l'exactitude factuelle.
  • La compétence de design l'emporte sur : la stratégie et la structure de la page (une action principale ; Hero, Avantages, Fonctionnement, Preuve, FAQ, Appel à l'action final), la copie de conversion, le SEO et les balises og:, l'espacement, le rayon, le mouvement et les états, la révélation du slogan, et le HTML sémantique et l'accessibilité.
  • Ignorer les éléments qui ne correspondent pas à une seule page de démonstration : pages de confidentialité et conditions, page 404, consentement aux cookies, validation de formulaire.
  • Ne posez pas de questions d'admission. Énoncez plutôt les hypothèses (public, action principale unique, source de trafic, langue par défaut) dans un commentaire HTML en haut du fichier.

Trois choses à bien faire lorsque vous les combinez :

  1. Le visuel hero montre le produit lui-même. Préférez la propre image hero du dépôt ou le GIF de démonstration du README, ou une capture d'écran de l'interface utilisateur du produit. N'utilisez jamais un exemple

… [tronqué pour la traduction]

Skills associés