14 - Starlight Branding, Copy Button, and Docs Sync
Audience : Développeurs
Durée estimée : 15-20 minutes
Prérequis : 13 - Phase0 Starlight Docs Auth Test terminé
1. Vue dâensemble
Section titled â1. Vue dâensembleâCette session a ajoutĂ© les fonctionnalitĂ©s de branding Starlight et de synchronisation des docs :
- Changement du titre du site de âDocumentationâ Ă âamn Docsâ
- Ajout du plugin
starlight-page-actionspour le bouton âCopy articleâ - Configuration des fonctionnalitĂ©s natives Starlight (logo, favicon, social, editLink, lastUpdated, pagination, tableOfContents)
- CrĂ©ation dâun workflow de synchronisation bidirectionnelle des docs
- Correction des problĂšmes de duplication des titres
2. Modifications effectuées
Section titled â2. Modifications effectuĂ©esâ2.1. Branding Starlight
Section titled â2.1. Branding StarlightâFichier modifiĂ© : apps/web/astro.config.mjs
starlight({ title: 'amn Docs', // Changé de 'Documentation' logo: { src: './src/assets/logo.svg', }, favicon: '/favicon.svg', social: [ { icon: 'github', href: 'https://github.com/audyssee/PP', label: 'GitHub' }, ], editLink: { baseUrl: 'https://github.com/audyssee/PP/edit/main/apps/web/src/content/docs/', }, lastUpdated: true, pagination: true, tableOfContents: { minHeadingLevel: 2, maxHeadingLevel: 3, },})2.2. Plugin Copy Article
Section titled â2.2. Plugin Copy ArticleâInstallation :
pnpm --filter ./apps/web add starlight-page-actionsConfiguration :
import starlightPageActions from 'starlight-page-actions';
starlight({ plugins: [ starlightPageActions({ openActions: { enabled: false, // Désactiver ouverture dans les IA }, shareActions: { enabled: false, // Désactiver partage social }, }), ],})2.3. Synchronisation des Docs
Section titled â2.3. Synchronisation des DocsâScript créé : sync-docs.sh
Ce script synchronise de maniĂšre bidirectionnelle :
docs/âapps/web/src/content/docs/docs/GettingStarted/âapps/web/src/content/docs/getting-started/
Filtres dâexclusion :
docs/PM/etdocs/SOP/sont exclus- Dans
GettingStarted/, seuls les fichiers numérotés01-99.mdetindex.mdsont synchronisés - Les fichiers temporaires (
.DONE.md,.TODO.md,test_*.md, etc.) sont exclus
Commandes disponibles :
# Synchroniser source â Starlight./sync-docs.sh source-to-starlight# outask sync-docs
# Synchroniser Starlight â source./sync-docs.sh starlight-to-source# outask sync-docs:reverse
# Synchronisation bidirectionnelle./sync-docs.sh bidirectional# outask sync-docs:bidirectional2.4. Workflow GitHub Actions
Section titled â2.4. Workflow GitHub ActionsâFichier modifiĂ© : .github/workflows/deploy-dev.yml
Ajout dâun step de synchronisation avant le build :
- name: Sync docs to Starlight run: ./sync-docs.sh source-to-starlight- name: Commit synced docs run: | git config --local user.email "github-actions[bot]@users.noreply.github.com" git config --local user.name "github-actions[bot]" git add apps/web/src/content/docs/ git diff --staged --quiet || git commit -m "chore: sync docs from source to starlight [skip ci]"2.5. Correction des titres dupliqués
Section titled â2.5. Correction des titres dupliquĂ©sâLes fichiers markdown avaient Ă la fois un titre dans le frontmatter ET un titre H1 dans le contenu, ce qui crĂ©ait une duplication.
Solution : Suppression de tous les titres H1 des fichiers markdown (137 fichiers modifiés automatiquement)
2.6. Assets créés
Section titled â2.6. Assets créésâapps/web/src/assets/logo.svg- Logo placeholder avec âAMNâapps/web/src/assets/favicon.svg- Favicon placeholder avec âAâapps/web/public/favicon.svg- Copie pour le favicon web
3. Test des modifications
Section titled â3. Test des modificationsâ3.1. Test local du plugin Copy Article
Section titled â3.1. Test local du plugin Copy Articleâ-
Démarrer le serveur de développement :
Terminal window task dev -
Naviguer vers une page de documentation (ex:
http://localhost:4321/getting-started/01-setup-local) -
Vérifier :
- â Le bouton âCopy Markdownâ est visible
- â Le bouton copie le contenu complet de lâarticle
- â Le bouton affiche âCopied!â aprĂšs la copie
3.2. Test de la synchronisation des docs
Section titled â3.2. Test de la synchronisation des docsâ# Test de synchronisation source â Starlighttask sync-docs
# Vérifier que les fichiers sont synchronisésls apps/web/src/content/docs/docs/ls apps/web/src/content/docs/getting-started/
# Vérifier que les fichiers temporaires sont exclus# (doit ne pas contenir test_*.md, *.DONE.md, etc.)3.3. Test du workflow GitHub Actions
Section titled â3.3. Test du workflow GitHub ActionsâLe workflow sera testĂ© automatiquement lors du prochain push sur main.
4. Structure de travail des docs
Section titled â4. Structure de travail des docsâ4.1. Source de vĂ©ritĂ©
Section titled â4.1. Source de vĂ©ritĂ©â- docs/ : Documentation technique (L1, L2, L3)
- GettingStarted/ : Guides de démarrage (uniquement fichiers numérotés 01-99.md)
4.2. Destination Starlight
Section titled â4.2. Destination Starlightâ- apps/web/src/content/docs/docs/ : Docs techniques pour Starlight
- apps/web/src/content/docs/getting-started/ : Guides de démarrage pour Starlight
4.3. Workflow recommandé
Section titled â4.3. Workflow recommandĂ©â- Ăditer les docs dans
docs/ouGettingStarted/ - Synchroniser vers Starlight :
task sync-docs - Tester localement :
task dev - Committer les changements
- Push vers main (déploiement automatique avec sync)
5. Dépannage
Section titled â5. DĂ©pannageâ5.1. ProblĂšme : Le bouton Copy ne sâaffiche pas
Section titled â5.1. ProblĂšme : Le bouton Copy ne sâaffiche pasâCause probable : Le plugin nâest pas installĂ© ou mal configurĂ©
Solution :
pnpm --filter ./apps/web add starlight-page-actionsVérifier la configuration dans apps/web/astro.config.mjs
5.2. ProblÚme : Les titres sont toujours dupliqués
Section titled â5.2. ProblĂšme : Les titres sont toujours dupliquĂ©sâCause probable : Certains fichiers ont encore des H1
Solution :
# Vérifier manuellement les fichiersgrep -r "^# " apps/web/src/content/docs/Supprimer manuellement les H1 restants
5.3. ProblĂšme : La synchronisation ne fonctionne pas
Section titled â5.3. ProblĂšme : La synchronisation ne fonctionne pasâCause probable : Permissions ou chemins incorrects
Solution :
# Vérifier que le script est exécutablechmod +x sync-docs.sh
# Vérifier les cheminsls -la docs/ls -la GettingStarted/ls -la apps/web/src/content/docs/6. Prochaines étapes
Section titled â6. Prochaines Ă©tapesâ- Tester le bouton Copy Article avec le serveur de dĂ©veloppement
- Tester la synchronisation bidirectionnelle
- Vérifier que le workflow GitHub Actions passe correctement
- Mettre Ă jour les assets logo et favicon avec les vrais fichiers
- Tester toutes les fonctionnalités Starlight configurées