Spécification Technique - Intégration Algolia DocSearch dans Starlight
Spécification Technique : Intégration Algolia DocSearch dans Starlight
Section titled “Spécification Technique : Intégration Algolia DocSearch dans Starlight”1. Contexte & Problématique
Section titled “1. Contexte & Problématique”Dans le cadre de l’architecture hybride Astro SSR sur Cloudflare Workers :
- Les documentations Starlight (
/docs/et/gettingstarted/) sont configurées avecprerender: falsepour permettre au middleware Astro (src/middleware.ts) d’intercepter les requêtes HTTP et de contrôler l’accès via Better Auth. - Le moteur de recherche par défaut de Starlight (Pagefind) nécessite la génération statique de fichiers HTML au build (
prerender: true). En mode SSR (prerender: false), Pagefind ne trouve pas de fichiers HTML statiques dansdist/client, ce qui rend la recherche inaccessible ou vide (No results). - Pour conserver le contrôle d’accès dynamique par middleware tout en bénéficiant d’une recherche performante, Starlight recommande l’intégration officielle d’Algolia DocSearch via le plugin
@astrojs/starlight-docsearch.
2. Solution Retenue (DOC → SPEC)
Section titled “2. Solution Retenue (DOC → SPEC)”L’intégration du plugin officiel @astrojs/starlight-docsearch permet de remplacer l’UI du modal de recherche natif par le modal d’Algolia DocSearch sans modifier le comportement des routes SSR ni compromettre la sécurité Better Auth.
3. Matrice des Modifications
Section titled “3. Matrice des Modifications”A. Paquets Nouveaux
Section titled “A. Paquets Nouveaux”@astrojs/starlight-docsearch(ajouté aux dépendances deapps/web)
B. Fichiers de Configuration
Section titled “B. Fichiers de Configuration”-
apps/web/astro.config.mjs- Importation du plugin
starlightDocSearchdepuis@astrojs/starlight-docsearch. - Ajout de
starlightDocSearch({ appId, apiKey, indexName })dans le tableaupluginsde l’intégrationstarlight(). - Nettoyage des stubs/overrides de recherche locaux non standards.
- Importation du plugin
-
apps/web/.envetapps/web/.env.example- Ajout des variables
ALGOLIA_APP_ID,ALGOLIA_SEARCH_API_KEY, etALGOLIA_INDEX_NAME.
- Ajout des variables
4. Protocole de Validation & Tests (TEST → INTÉG)
Section titled “4. Protocole de Validation & Tests (TEST → INTÉG)”- Contrôle de Type TypeScript :
task typecheck(0 erreurs exigées). - Validation du Build Web :
task build:web(Compilation des bundles sans avertissements critiques). - Test d’Exécution Locale :
task dev:wrangler(Vérification de l’ouverture du modal Algolia surhttp://localhost:8787).