logo hsb.horse

Architecture Decision Record

Design der Blog-Content-Collection

Definiert Schema und Betriebsregeln für die Verwaltung von Blogartikeln in Markdown/MDX.

Angenommen #blog #content #architecture

Design der Blog-Content-Collection

Entscheidung

  • Blogartikel werden als Markdown/MDX-Dateien unter /blog verwaltet.
  • Es gilt folgendes Frontmatter-Schema:
    • title (erforderlich, string)
    • description (optional, string)
    • publishedAt (erforderlich, date)
    • updatedAt (optional, date)
    • draft (optional, boolean, Standard false)
    • tags (optional, string[])
    • image (optional, string)
    • noindex (optional, boolean, Standard false)
    • lang (optional, string, Standard ja)
    • slug (optional, string, bei Auslassung vom Dateinamen abgeleitet)
    • prev (optional, true | false | string, steuert den vorherigen Link explizit)
    • next (optional, true | false | string, steuert den nächsten Link explizit)
  • Gemäß i18n-URL-Strategie werden URLs aus der Kombination lang + slug abgeleitet. Übersetzungen verwenden denselben slug.
  • Listen werden nach publishedAt sortiert; für die Anzeige „zuletzt aktualisiert“ wird updatedAt verwendet.
  • draft dient als Flag, um Artikel aus Listen/Feeds/Build-Zielen auszuschließen.
  • noindex ist Metadaten-Hinweis, dass der Artikel nicht von Suchmaschinen indexiert werden soll.

Kontext

Für den langfristigen Blogbetrieb wird ein konsistentes Schema benötigt, damit Listen, Detailseiten und SEO-Metadaten zuverlässig erzeugt werden. Das Design muss mit der i18n-Strategie übereinstimmen (Japanisch als Standardsprache, weitere Sprachen in Unterverzeichnissen).

Optionen

  • Markdown/MDX mit Content Collection
  • Externes Headless-CMS
  • Manuelle Verwaltung per JSON/TS

Begründung

  • Markdown/MDX hält Erstellung und Review leichtgewichtig.
  • Content-Collection-Schemata liefern Validierung zur Build-Zeit.
  • Explizite Felder lang und slug sichern konsistente URLs im Einklang mit der i18n-Strategie.

Konsequenzen

  • Alle Blogartikel müssen dem obigen Schema folgen.
  • Betriebsregeln für draft und noindex müssen als Veröffentlichungskriterien geteilt werden.
  • Beim Hinzufügen weiterer Sprachen müssen Übersetzungen mit identischem slug erstellt werden.