[Nom de la Configuration d'Indexation Pagefind]
Type de ressource : Configuration Indexation Pagefind (RÚgles / Exclusions / Métadonnées)
Fichier source :astro.config.mjsoupagefind.yml
Statut : [Actif / Déprécié / En développement]
Slice : [Numéro de la tranche verticale]
Version : 1.0
1. Vue dâensemble (DOC)
Section titled â1. Vue dâensemble (DOC)â1.1. Description
Section titled â1.1. Descriptionâ[Description concise du rĂŽle de cette configuration dâindexation dans lâarchitecture du site]
1.2. Objectif
Section titled â1.2. Objectifâ- [Objectif principal : ex. indexer uniquement les pages publiĂ©es du blog et de la documentation]
- [BĂ©nĂ©fice pour lâutilisateur final : ex. recherche rapide et pertinente]
1.3. PérimÚtre concerné
Section titled â1.3. PĂ©rimĂštre concernĂ©â| Source de contenu | Statut |
|---|---|
| Sanity (SSG) | [â /â] |
| Starlight | [â /â] |
| Les deux | [â /â] |
| Type dâindexation | Statut |
|---|---|
| Statique au build | [â /â] |
| Dynamique | [â /â] |
| Langues | Statut |
|---|---|
| fr | [â /â] |
| en | [â /â] |
| multi-langue | [â /â] |
| Couverture | Statut |
|---|---|
| Vitrine | [â /â] |
| Blog | [â /â] |
| Portfolio | [â /â] |
| Documentation | [â /â] |
| Tout | [â /â] |
2. Architecture et flux (DOC)
Section titled â2. Architecture et flux (DOC)â2.1. Diagramme de flux
Section titled â2.1. Diagramme de fluxâ[Build Astro (SSG)] â âą GĂ©nĂ©ration HTML statique â âą Pages Sanity + Starlight âŒ[Pagefind CLI / astro-pagefind] â âą Lecture du dossier dist/ â âą Application des rĂšgles d'exclusion â âą Extraction du contenu texte â âą GĂ©nĂ©ration de l'index chunkĂ© âŒ[Dossier _pagefind/] â âą Index fragmentĂ© (chunks) â âą MĂ©tadonnĂ©es et filtres âŒ[Site dĂ©ployĂ©] â âą Index chargĂ© Ă la demande â âą Recherche cĂŽtĂ© client âŒ[Utilisateur final]2.2. Composants impliquĂ©s
Section titled â2.2. Composants impliquĂ©sâ| Composant | RĂŽle | Couche |
|---|---|---|
| Astro (SSG) | Génération des pages HTML | L2 |
| Pagefind CLI | Indexation statique | Build time |
| astro-pagefind | Intégration Astro | L2 |
| Starlight | Documentation indexée | L2 |
| Index Pagefind | Stockage de lâindex | Build artifact |
| UI de recherche | Interface utilisateur | L2 |
3. Configuration de lâindexation (CODE)
Section titled â3. Configuration de lâindexation (CODE)â3.1. Configuration dans astro.config.mjs
Section titled â3.1. Configuration dans astro.config.mjsâimport pagefind from 'astro-pagefind';
export default defineConfig({ integrations: [ pagefind({ ranking: { pageLength: 0.1, termFrequency: 0.5, termSaturation: 0.5, termSimilarity: 0.9, }, excludeSelectors: [ 'nav', 'footer', '.no-index', '.search-exclude', 'script', 'style', ], }), ],});3.2. Configuration alternative : pagefind.yml
Section titled â3.2. Configuration alternative : pagefind.ymlâ# pagefind.yml (Ă la racine du projet)site: distexclude_selectors: - nav - footer - .no-index - .search-exclude - script - style3.3. MĂ©tadonnĂ©es personnalisĂ©es
Section titled â3.3. MĂ©tadonnĂ©es personnalisĂ©esâ---// Dans les pages Astroconst pagefindMeta = { type: 'blog', // ou 'page', 'portfolio', 'docs' category: 'marketing', date: '2026-09-04',};---<html data-pagefind-meta={JSON.stringify(pagefindMeta)}>4. Contrats dâEntrĂ©e/Sortie (SPEC)
Section titled â4. Contrats dâEntrĂ©e/Sortie (SPEC)â4.1. Inputs (HTML gĂ©nĂ©rĂ©)
Section titled â4.1. Inputs (HTML gĂ©nĂ©rĂ©)â| ĂlĂ©ment | Type | Validation |
|---|---|---|
dist/ |
Directory | Existe et contient HTML |
4.2. Outputs (Index)
Section titled â4.2. Outputs (Index)â| ĂlĂ©ment | Type | Description |
|---|---|---|
_pagefind/ |
Directory | Index chunké |
pagefind.wasm |
File | WebAssembly |
5. Tests attendus (TEST)
Section titled â5. Tests attendus (TEST)â5.1. Tests unitaires
Section titled â5.1. Tests unitairesâ| ScĂ©nario | Description | RĂ©sultat attendu |
|---|---|---|
| Indexation | Build complet | Index généré |
| Exclusions | SĂ©lecteurs appliquĂ©s | ĂlĂ©ments exclus |
5.2. Tests dâintĂ©gration
Section titled â5.2. Tests dâintĂ©grationâ| ScĂ©nario | DĂ©pendances | Description | RĂ©sultat attendu |
|---|---|---|---|
| Recherche | Index + UI | Recherche dâun terme | RĂ©sultats pertinents |
6. IntĂ©gration (INTĂG)
Section titled â6. IntĂ©gration (INTĂG)â6.1. IntĂ©gration avec les composants
Section titled â6.1. IntĂ©gration avec les composantsâ| Composant | Type | RĂŽle | MĂ©thode dâintĂ©gration |
|---|---|---|---|
| Astro | L2 | Génération HTML | astro-pagefind |
| Starlight | L2 | Documentation | Indexation automatique |
6.2. Points dâattention
Section titled â6.2. Points dâattentionâ- Les sĂ©lecteurs dâexclusion doivent ĂȘtre corrects
- Les mĂ©tadonnĂ©es doivent ĂȘtre cohĂ©rentes
- Lâindex doit ĂȘtre rĂ©gĂ©nĂ©rĂ© aprĂšs chaque build
6.3. Vérification de cohérence
Section titled â6.3. VĂ©rification de cohĂ©renceâ- Lâindex est gĂ©nĂ©rĂ© au build
- Les exclusions sont appliquées
- Les métadonnées sont accessibles
- La recherche fonctionne
7. Sécurité
Section titled â7. SĂ©curitĂ©â7.1. MĂ©canismes de sĂ©curitĂ©
Section titled â7.1. MĂ©canismes de sĂ©curitĂ©â- â Pas dâexposition de donnĂ©es sensibles
- â Index cĂŽtĂ© client uniquement
7.2. RÚgles de sécurité
Section titled â7.2. RĂšgles de sĂ©curitĂ©â- â Exclure les zones sensibles
- â Ne pas indexer les pages privĂ©es
8. Performance et limites
Section titled â8. Performance et limitesâ8.1. Limites Pagefind
Section titled â8.1. Limites Pagefindâ| Limite | Valeur |
|---|---|
| Taille de lâindex | ~10 MB par 10 000 pages |
| Temps dâindexation | ~30s pour 10 000 pages |
8.2. Optimisations
Section titled â8.2. Optimisationsâ- â Index chunkĂ© (chargement progressif)
- â WebAssembly
- â Compression
9. Débogage et troubleshooting
Section titled â9. DĂ©bogage et troubleshootingâ9.1. ProblĂšmes courants
Section titled â9.1. ProblĂšmes courantsâ| SymptĂŽme | Cause probable | Solution |
|---|---|---|
| Index vide | Build échoué | Vérifier le build |
| Résultats manquants | Exclusions trop larges | Ajuster les sélecteurs |
9.2. Commandes de debug
Section titled â9.2. Commandes de debugâ# Build avec Pagefindnpm run build
# Test localnpm run preview10. Bonnes pratiques
Section titled â10. Bonnes pratiquesâ10.1. Architecture
Section titled â10.1. Architectureâ- â Exclure les Ă©lĂ©ments non pertinents
- â Utiliser des mĂ©tadonnĂ©es cohĂ©rentes
- â Tester la recherche aprĂšs chaque build
10.2. Maintenance
Section titled â10.2. Maintenanceâ- â Surveiller la taille de lâindex
- â Ajuster les rĂšgles dâexclusion
11. Ăvolutions et roadmap
Section titled â11. Ăvolutions et roadmapâ11.1. AmĂ©liorations planifiĂ©es
Section titled â11.1. AmĂ©liorations planifiĂ©esâ- [Ăvolution 1]
- [Ăvolution 2]
11.2. Limitations connues
Section titled â11.2. Limitations connuesâ- â [Limitation 1]
- â [Limitation 2]
12. Ressources liées
Section titled â12. Ressources liĂ©esâ- Documentation Pagefind : Pagefind Docs
- DAT L2 : §8 - Recherche Unifiée avec Pagefind
13. Historique des modifications
Section titled â13. Historique des modificationsâ| Date | Version | Description | Auteur |
|---|---|---|---|
| YYYY-MM-DD | 1.0 | Création initiale | [Nom] |