Schéma Sanity : page
Objet : Schéma Sanity
Type : Document
Slice : Slice 1 (Page d’accueil)
Cycle : DOC → SPEC → CODE → TEST → INTÉG
Statut : DOC
1. Description et périmètre
Section titled “1. Description et périmètre”1.1. Objectif
Section titled “1.1. Objectif”Le schéma page est un document Sanity qui représente une page marketing (vitrine) avec un contenu modulaire flexible via un PageBuilder. Il permet aux équipes marketing de créer des pages de manière autonome sans intervention technique.
1.2. Utilisation principale
Section titled “1.2. Utilisation principale”- Page d’accueil (homepage)
- Pages marketing (landing pages)
- Pages de présentation (about, features, etc.)
1.3. Périmètre concerné
Section titled “1.3. Périmètre concerné”- Type : Document Sanity
- Champ principal : PageBuilder (array de blocs modulaires)
- Blocs supportés : hero, features, testimonials, cta, richText, imageGallery
- Métadonnées SEO : title, description, slug
- Mode preview : Support du mode preview Sanity
2. Contrats d’entrée
Section titled “2. Contrats d’entrée”2.1. Structure du schéma
Section titled “2.1. Structure du schéma”Entrée : Configuration du schéma page dans Sanity Studio
Structure :
{ _type: "page", title: string, slug: { current: string }, description: string, pageBuilder: [ { _type: "hero", heading: string, tagline: string, image: image }, { _type: "features", title: string, features: [ { title: string, text: string, icon: string } ] }, { _type: "testimonials", title: string, testimonials: [ { name: string, role: string, text: string, avatar: image } ] }, { _type: "cta", heading: string, text: string, buttonText: string, buttonLink: string }, { _type: "richText", content: blockContent }, { _type: "imageGallery", title: string, images: [image] } ]}Règles :
title: obligatoire, titre de la pageslug: obligatoire, unique, utilisé pour l’URLdescription: optionnel, pour le SEOpageBuilder: obligatoire, tableau de blocs modulaires- Chaque bloc a ses propres champs spécifiques
2.2. Types de blocs PageBuilder
Section titled “2.2. Types de blocs PageBuilder”Hero :
heading: titre principaltagline: sous-titreimage: image d’illustration
Features :
title: titre de la sectionfeatures: tableau de features (title, text, icon)
Testimonials :
title: titre de la sectiontestimonials: tableau de témoignages (name, role, text, avatar)
CTA :
heading: titre de la sectiontext: texte de descriptionbuttonText: texte du boutonbuttonLink: lien du bouton
RichText :
content: contenu Portable Text (blockContent)
ImageGallery :
title: titre de la galerieimages: tableau d’images
3. Contrats de sortie
Section titled “3. Contrats de sortie”3.1. Données Sanity
Section titled “3.1. Données Sanity”Sortie : Document Sanity de type page
Format : JSON avec la structure définie ci-dessus
Utilisation :
- Requête GROQ pour récupérer le document
- Utilisation dans Astro pour le rendu SSG
- Support du mode preview avec
previewDrafts
3.2. Métadonnées SEO
Section titled “3.2. Métadonnées SEO”Sortie : Métadonnées pour l’optimisation SEO
Champs :
title:<title>HTMLdescription:<meta name="description">slug: URL de la page
4. Side effects
Section titled “4. Side effects”4.1. Impact sur le rendu
Section titled “4.1. Impact sur le rendu”Effet : Le schéma page nécessite un rendu dynamique des blocs PageBuilder
Impact :
- Astro doit parcourir le tableau
pageBuilder - Chaque bloc doit avoir un composant Astro correspondant
- Le rendu doit être flexible pour accepter différents types de blocs
4.2. Impact sur le mode preview
Section titled “4.2. Impact sur le mode preview”Effet : Le schéma page supporte le mode preview Sanity
Impact :
- Le client Sanity doit basculer en mode
previewDrafts - Le cookie
sanity-previewdoit être détecté - Le cache Edge doit être bypassé en mode preview
5. Erreurs et gestion
Section titled “5. Erreurs et gestion”5.1. Erreurs potentielles
Section titled “5.1. Erreurs potentielles”| Erreur | Cause probable | Solution |
|---|---|---|
| Schéma non trouvé | Type page non défini dans le schéma |
Créer le schéma page |
| Bloc non reconnu | Type de bloc non défini dans le PageBuilder | Ajouter le type de bloc dans le schéma |
| Slug en double | Deux pages avec le même slug | Utiliser la validation Sanity pour l’unicité |
| Portable Text invalide | Structure de blockContent incorrecte | Vérifier la structure du blockContent |
5.2. Codes HTTP
Section titled “5.2. Codes HTTP”Non applicable (schéma Sanity)
6. Checklist de validation
Section titled “6. Checklist de validation”Avant de passer à l’étape SPEC, vérifier :
- La structure du schéma est documentée
- Les types de blocs PageBuilder sont définis
- Les contrats d’entrée/sortie sont documentés
- Les side effects sont identifiés
- Les erreurs potentielles sont documentées
7. Approbation
Section titled “7. Approbation”Validation requise : Confirmer que la documentation du schéma page peut passer à l’étape SPEC.
8. Historique des modifications
Section titled “8. Historique des modifications”| Date | Version | Description | Auteur |
|---|---|---|---|
| 2026-09-16 | 1.0 | Création initiale | Devin |