Spécification Technique - Intégration Algolia DocSearch dans Starlight
Spécification Technique - Intégration Algolia DocSearch dans Starlight
Document de spécification d'intégration du plugin officiel @astrojs/starlight-docsearch
Spécification Technique : Intégration Algolia DocSearch dans Starlight
1. Contexte & Problématique1/2
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).
1. Contexte & Problématique2/2
- 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)
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
A. Paquets Nouveaux
@astrojs/starlight-docsearch(ajouté aux dépendances deapps/web)
B. Fichiers de Configuration1/2
-
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
B. Fichiers de Configuration2/2
-
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)
- 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).