logo hsb.horse

Architecture Decision Record

Conception de la collection de contenu du blog

Définit le schéma et les règles d’exploitation pour gérer les articles de blog en Markdown/MDX.

Accepté #blog #content #architecture

Conception de la collection de contenu du blog

Décision

  • Gérer les articles de blog en fichiers Markdown/MDX sous /blog.
  • Utiliser le schéma de frontmatter suivant :
    • title (obligatoire, string)
    • description (optionnel, string)
    • publishedAt (obligatoire, date)
    • updatedAt (optionnel, date)
    • draft (optionnel, boolean, valeur par défaut false)
    • tags (optionnel, string[])
    • image (optionnel, string)
    • noindex (optionnel, boolean, valeur par défaut false)
    • lang (optionnel, string, valeur par défaut ja)
    • slug (optionnel, string, dérivé du nom de fichier s’il est omis)
    • prev (optionnel, true | false | string, contrôle explicitement le lien précédent)
    • next (optionnel, true | false | string, contrôle explicitement le lien suivant)
  • Suivre la stratégie d’URL i18n en dérivant les URL à partir de lang + slug. Utiliser le même slug pour les traductions.
  • Trier les listes par publishedAt et utiliser updatedAt pour l’affichage « dernière mise à jour ».
  • Traiter draft comme un indicateur d’exclusion des listes/flux/cibles de build.
  • Traiter noindex comme une métadonnée indiquant l’exclusion de l’indexation par les moteurs de recherche.

Contexte

Un schéma cohérent est nécessaire pour générer de manière fiable les listes, les pages de détail et les métadonnées SEO sur le long terme. La conception doit s’aligner avec l’approche i18n (japonais par défaut, langues supplémentaires dans des sous-répertoires).

Options

  • Markdown/MDX avec Content Collection
  • CMS headless externe
  • Gestion manuelle en JSON/TS

Justification

  • Markdown/MDX garde la rédaction et la revue légères.
  • Les schémas de Content Collection fournissent une validation au moment du build.
  • Les champs explicites lang et slug maintiennent des URL cohérentes alignées sur la stratégie i18n.

Conséquences

  • Tous les articles de blog doivent respecter le schéma ci-dessus.
  • Les règles d’exploitation pour draft et noindex doivent être partagées comme critères de publication.
  • Ajouter de nouvelles langues impose de créer des traductions avec des valeurs de slug identiques.