src/content/pages/home.json
La page d'accueil : hero, texte pédagogique, CTA, grille d'articles, bloc image + texte.
Guide opérateur
Ici, le CMS est un dossier Git. Emmanuel édite des fichiers, lance un build, puis pousse/deploie. C'est volontairement rustique pour tester la piste migration.
src/content/pages/home.jsonLa page d'accueil : hero, texte pédagogique, CTA, grille d'articles, bloc image + texte.
src/content/pages/faq.jsonLa page FAQ : blocs de questions/réponses et textes structurés.
src/content/pages/mentions.jsonLa page mentions : contenu légal simple, toujours en JSON.
src/content/articles/*.mdLe blog : un fichier Markdown par article. Le champ draft: true masque un article.
src/content/articles/, par exemple article-5.md.---.npm run build.git add . && git commit -m "edit: update article" && git push.draft: true dans l'en-tête Markdown.
Les pages JSON contiennent une liste blocks. Chaque bloc a :
block_key : identifiant humain stable ;template : type de bloc, par exemple hero_v1 ou image_text_v1 ;payload : les champs propres à ce type de bloc.Pour changer une phrase du CTA de la home : ouvrir src/content/pages/home.json, trouver "block_key": "home.cta", modifier payload.headline ou payload.note, puis lancer npm run build.
| Template | Usage | Fichiers techniques |
|---|---|---|
hero_v1 | Grand titre + sous-titre + CTA. | Hero.astro + schema Zod. |
rich_text_v1 | Texte Markdown simple. | RichText.astro + marked. |
faq_v1 | Questions/réponses. | Faq.astro. |
articles_grid_v1 | Derniers articles du blog. | ArticlesGrid.astro. |
cta_band_v1 | Bandeau d'appel à l'action. | CtaBand.astro. |
image_text_v1 | Image + texte côte à côte. | ImageText.astro. |
Formule utile :
Dans src/content/pages/home.json, modifie le bloc home.cta : remplace payload.note par "Nouvelle date : 20 juin 2026". Lance npm run build, commit et déploie sur cms.maestro-seo.com. Pour un nouveau type de bloc, demander explicitement : schema Zod + composant Astro + enregistrement dans src/lib/blocks.ts + usage dans un JSON + build vert.
npm install installe les dépendances.npm run dev lance le site local.npm run build vérifie et génère dist/.dist/ par rsync et Nginx sert les fichiers en HTTPS.Tout le site reste noindex : meta HTML + header Nginx X-Robots-Tag.