# Guide de gestion des contenus — PHI Conseil Tous les textes, services, avantages, témoignages, coordonnées et paramètres SEO se trouvent dans trois fichiers du dossier `content/`. Ils se modifient avec n'importe quel éditeur de texte (ou l'interface web du dépôt Git) ; aucune modification du code n'est nécessaire. À chaque mise à jour, le site est reconstruit et vérifié : une faute de structure (guillemet manquant, champ oublié) bloque la publication avec un message précis au lieu de casser le site. > Règle d'or : conservez les guillemets `"…"` et les virgules ; modifiez uniquement ce qui se trouve entre les guillemets, ou ajoutez/retirez des éléments complets dans les listes. ## `content/site.json` — identité et coordonnées | Champ | Usage | | -------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------- | | `brand.name`, `brand.tagline`, `brand.footerSignature`, `brand.legalName` | nom, signature de l'en-tête, phrase du pied de page, raison sociale du copyright | | `navigation[]` | liens du menu (ordre = ordre affiché) | | `headerCta` | bouton « Contactez-nous → » | | `contact.email`, `contact.phone`, `contact.address`, `contact.region` | coordonnées ; **laissez `""` pour masquer** l'icône courriel / la ligne correspondante | | `social.linkedin` | URL complète du profil LinkedIn ; `""` = icône masquée | | `legalLinks[]` | liens juridiques du pied de page | | `seo.siteUrl`, `seo.defaultTitle`, `seo.titleTemplate`, `seo.defaultDescription` | métadonnées par défaut | ## `content/home.json` — page d'accueil - `hero.titleLines` : les lignes du grand titre (1 à 4). `hero.subtitle`, `hero.cta`. - `hero.image.src` : chemin d'une photo placée dans `public/images/` (ex. `"/images/hero.jpg"`). Vide = illustration vectorielle de remplacement. Toujours renseigner `alt` (description pour les lecteurs d'écran). - `services.items[]` : `slug` (identifiant URL, lettres minuscules et tirets), `icon` (`search`, `document-edit`, `chart`, `check-circle`), `title`, `summary` (accueil), `description` (page Services, facultatif). L'ordre du tableau = ordre d'affichage. - `about` : `overtitle`, `title`, `paragraph`, `cta`, `benefits[]` (coches dorées), `image`. - `testimonials.visible` : `true` pour afficher la section. **Un témoignage n'apparaît que si `approved: true`** (autorisation écrite de la personne citée). `previewOnly` permet d'afficher les exemples non approuvés uniquement sur un site de démonstration. - `callToAction` : bandeau bleu final. - Chaque section possède `visible` pour la masquer sans la supprimer. ## `content/pages.json` — pages internes Titres, introductions, descriptions SEO des pages Services, À propos, Témoignages, Nous joindre (liste `subjects` du menu déroulant, texte de consentement, message de confirmation) et Confidentialité (`lastUpdated` au format AAAA-MM-JJ ; passez `reviewed` à `true` une fois le texte validé juridiquement pour retirer l'avertissement). ## Images 1. Préparer un JPEG/WebP de bonne qualité (hero : ≥ 1600 px de large ; À propos : format vertical ≥ 1000 × 1250 px). 2. Le déposer dans `public/images/`. 3. Renseigner `image.src` et `image.alt` dans `home.json`. 4. Noter la provenance et la licence dans `docs/ASSET_REGISTER.md`. Le site convertit et redimensionne automatiquement (AVIF/WebP, tailles adaptées). ## Logo et favicon Le logo actuel est une recréation SVG de la spirale dorée. Pour utiliser le logo officiel : remplacer le composant `src/components/graphics/Logo.tsx` par le SVG fourni, puis `pnpm icons` pour régénérer favicon et icônes (ou fournir directement `src/app/icon.svg`, `src/app/apple-icon.png`). ## Publier une modification Sur le serveur d'hébergement : `pnpm build && pm2 restart phi-conseil` (voir `docs/DEPLOYMENT.md`), puis `git commit` pour conserver l'historique. Une erreur de contenu s'affiche au build sous la forme `Contenu invalide dans content/home.json : hero.subtitle : …`.