Skip to content

Index

Index

Documentation technique

Type de ressource : Route Astro (Page SSR)
Fichier source : src/pages/index.astro
Statut : Actif

1. Vue d’ensemble

1.1. Description

Page d’accueil du site. Affiche un message de bienvenue avec un test d’intégration AMN (Message du schéma Sanity). Contient du contenu template Astro avec des liens vers les sections du site.

1.2. Objectif

  • Afficher la page d’accueil du site
  • Tester l’intégration Sanity via le message AMN
  • Fournir une navigation vers les autres sections du site
  • Servir de point d’entrée principal

1.3. Caractéristiques

Propriété Valeur
URL publique /
Mode de rendu SSR (par défaut)
Type Page HTML
Méthode HTTP GET
Authentification requise Non
Cache Voir §6

2. Architecture et flux

[Requête utilisateur]
│
▼
[Cloudflare Pages / Edge]
│ • Routage vers Astro
▼
[Astro Route (index.astro)]
│ • Récupération du message AMN via getAmn()
│ • Rendu du composant
▼
[Réponse HTML]

2.2. Composants impliqués

Composant Rôle Couche
index.astro Définition de la route L2 (Astro)
getAmn() Récupération du message AMN L2 (Astro)
BaseHead Métadonnées SEO globales L2 (Astro)
Header Navigation globale L2 (Astro)
Footer Pied de page global L2 (Astro)

3. Implémentation

3.1. Code de la route1/2

3.1. Code de la route2/2

---
import BaseHead from '../components/BaseHead.astro';
import Footer from '../components/Footer.astro';
import Header from '../components/Header.astro';
import { SITE_DESCRIPTION, SITE_TITLE } from '../consts';
import { getAmn } from '../lib/sanity';
const amn = await getAmn();
---
<!doctype html>
<html lang="en">
<head>
<BaseHead title={SITE_TITLE} description={SITE_DESCRIPTION} />
</head>
<body>
<Header />
<main>
<div style="background: #eef2ff; border: 1px solid #c7d2fe; padding: 1rem; border-radius: 8px; margin-bottom: 2rem;">
<h2>🚀 Welcome, AMN Integration Test</h2>
{amn ? (
<div>
<p><strong>Message Sanity:</strong> {amn.message}</p>
<p><strong>Statut:</strong> {amn.status}</p>
</div>
) : (
<p>No active AMN message found in Sanity. <a href="/welcome">Voir la page /welcome</a></p>
)}
</div>
<h1>🧑‍🚀 Hello, Astronaut!</h1>
<p>
Welcome to the official <a href="https://astro.build/">Astro</a> blog starter template...
</p>
<!-- ... -->
</main>
<Footer />
</body>
</html>

4. Données et requêtes GROQ

4.1. Requête principale

*[_type == "amn" && status == "active"][0]

4.2. Requêtes secondaires

Aucune requête secondaire n’est utilisée.

4.3. Types TypeScript associés

// Type AMN (manuel, sanity-typegen non implémenté)
export type Amn = {
_id: string;
_type: 'amn';
message: string;
status: 'active' | 'inactive';
};

5. Paramètres et validation

5.1. Paramètres d’URL

Aucun paramètre d’URL n’est utilisé.

5.2. Query strings

Aucune query string n’est utilisée.

5.3. Gestion des erreurs

Code HTTP Condition Réponse
200 Succès Page HTML
500 Erreur Sanity (getAmn) Page HTML avec message d’erreur

6. Stratégie de cache

6.1. En-têtes de cache

Mode Cache-Control CDN-Cache-Control Rationale
SSR standard Non configuré Non configuré Par défaut Cloudflare

6.2. Implémentation dans la route

Non implémenté - pas de headers de cache explicites.

7. SEO et métadonnées

7.1. Balises meta

Balise Source Fallback
<title> SITE_TITLE (const) -
<meta name="description"> SITE_DESCRIPTION (const) -
Meta tags globaux BaseHead -

7.2. Sitemap

  • ✅ Cette route est-elle incluse dans le sitemap ? Oui (racine)
  • ✅ Fréquence de mise à jour : daily
  • ✅ Priorité : 1.0

7.3. Indexation Pagefind

  • ✅ Cette route est-elle indexée par Pagefind ? Non (Pagefind non configuré)
  • ⚠️ Poids du titre : Non configuré
  • ⚠️ Filtres applicables : Non configuré

8. Composants UI utilisés

Composant Fichier Rôle Hydratation
BaseHead src/components/BaseHead.astro Métadonnées SEO Aucune
Header src/components/Header.astro Navigation globale Aucune
Footer src/components/Footer.astro Pied de page global Aucune

9. Sécurité

9.1. Accès et authentification

Condition Comportement
Accès public Page accessible sans authentification
Mode Preview Non supporté (pas de logique preview)

9.2. Validation des entrées

Non applicable (pas de paramètres d’entrée).

9.3. En-têtes de sécurité

Non implémenté dans cette route (à configurer via Middleware Cloudflare).

10. Débogage et troubleshooting

10.1. Problèmes courants

Symptôme Cause probable Solution
Message AMN non affiché Aucun document AMN actif Créer un document AMN avec status “active”
Erreur Sanity Variables d’environnement manquantes Vérifier SANITY_PROJECT_ID, SANITY_DATASET

10.2. Logs et monitoring

Terminal window
# Logs de développement
npm run dev
# Vérification des types
npx astro check

10.3. Tests manuels

Terminal window
# Test de la route en local
curl -I http://localhost:4321/

11. Bonnes pratiques

11.1. Architecture

  • ✅ Utiliser les composants globaux (Header, Footer, BaseHead)
  • ✅ Centraliser les constantes (SITE_TITLE, SITE_DESCRIPTION)
  • ✅ Gérer les erreurs de manière élégante (message fallback)

11.2. Performance

  • ✅ Pas de JavaScript inutile
  • ✅ HTML statique par défaut

11.3. Maintenance

  • ✅ Mettre à jour le contenu template selon les besoins
  • ✅ Tester l’intégration Sanity régulièrement

12. Évolutions et roadmap

12.1. Améliorations planifiées

  • Supprimer le contenu template Astro
  • Ajouter un vrai contenu d’accueil
  • Support du mode preview
  • Ajout de structured data (JSON-LD)

12.2. Limitations connues

  • ❌ Contenu template Astro (non personnalisé)
  • ❌ Pas de support du mode preview
  • ❌ Pas de structured data (JSON-LD)
  • ❌ Langue hardcodée en ‘en’

13. Ressources liées

  • Documentation Astro : Routing
  • Fichiers concernés :
    • src/pages/index.astro
    • src/lib/sanity.ts (getAmn)
    • src/consts.ts (SITE_TITLE, SITE_DESCRIPTION)

14. Historique des modifications

Date Version Description Auteur
2026-09-15 1.0 Création initiale Devin
Switch to normal mode

Contents