Zum Hauptinhalt springen

Frontmatter- und Datenschemas

Exakte Docs-, Blog-, Autor- und Navigationsfelder der generierten strikten Collections.

Die generierten Collections prüfen jede Quelle mit strict: true. Pflichtfelder müssen vorhanden sein und exakt den hier angegebenen Werttyp haben.

Dokumentationsseiten

Docs sind Markdown-Dateien in der generierten Collection docs.

FeldTypPflichtZweck
titlestringJaSeitentitel, Metadaten und Standardlabel der Navigation
descriptionstringJaSeitenbeschreibung sowie Such- und SEO-Zusammenfassung
iconstringNeinIcon-Metadaten für Seite oder Navigation
badgestringNeinKurzes Navigations-Badge
updatedstringNeinSichtbare Aktualisierungszeile, Sitemap-lastmod, Agent-Metadatum und TechArticle.dateModified
redirectFromstring[]NeinFrühere öffentliche URLs, die dauerhaft auf diese Seite weiterleiten
sidebar'section' | 'group'NeinStrukturelle Sidebar-Rolle; auf Seiten wird das verschachtelte Objekt bevorzugt
navigationobjectNeinSeitenspezifische Navigationsmetadaten

Das Objekt navigation akzeptiert ausschließlich diese Felder:

FeldTypPflicht
navigation.titlestringNein
navigation.iconstringNein
navigation.badgestringNein
navigation.sidebar'section' | 'group'Nein

Das Docs-Schema akzeptiert ein navigation-Objekt, aber nicht navigation: false. Schreibe das Objekt als verschachteltes YAML:

content/docs/1.installation.md
---
title: Ginko Docs installieren
description: Füge den Layer zu einer bestehenden Nuxt-Anwendung hinzu.
updated: "2026-07-21"
navigation:
  title: Installation
  icon: lucide:package-plus
  badge: Start
---

Installiere das Paket in der konsumierenden Anwendung.

updated muss ein ISO-Datum (YYYY-MM-DD) sein. Ist der Wert gesetzt, rendert die Fußzeile der Seite eine lokalisierte Aktualisierungszeile, und der Sitemap-Eintrag erhält ein passendes lastmod.

Verschobene Seiten

Wenn eine Seite umzieht, bleiben ihre alten URLs in redirectFrom erhalten. Einträge sind absolute Site-Pfade genau so, wie sie ausgeliefert werden — inklusive Sprachpräfix und übersetztem Slug:

content/de/1.dokumentation/9.ressourcen/2.anforderungen-und-upgrades.md
---
title: Anforderungen und Upgrades
description: Unterstützte Paketbereiche und Upgrade-Prüfungen.
redirectFrom:
  - /de/dokumentation/ressourcen/upgrade-anleitung
---

Der Build rendert jeden alten Pfad als dauerhafte Weiterleitung auf die aktuelle Route vor; Server-Deployments antworten mit HTTP 301. Alte Pfade erscheinen nie in der Sitemap. Der Build schlägt fehl, wenn ein redirectFrom-Eintrag mit einer aktiven Seite, der Weiterleitung einer anderen Seite oder einer Theme-Route kollidiert. Auf statischem Hosting wird der Stub als meta refresh-Dokument ausgeliefert, nicht als echter 301-Status.

Veröffentlichungssteuerung

draft ist ein kernverwaltetes Feld und wird vor der strikten Prüfung durch das benutzerdefinierte Schema entfernt. Docs- und Blogseiten dürfen deshalb draft: true verwenden. Entwürfe sind in der Entwicklung sichtbar und fehlen in öffentlichen Produktionsoberflächen.

Dateien oder Verzeichnisse mit einem Unterstrich-Präfix sind Partials. Sie können als Content-Quelle dienen, werden aber nicht zu öffentlichen Seiten, Navigations- oder Agent-Einträgen.

Verzeichnisnavigation

Ein Verzeichnis mit Sidebar-Rolle erhält eine .navigation.yml:

content/en/1.docs/7.reference/.navigation.yml
title: Referenz
icon: lucide:braces
sidebar: section
FeldAkzeptierter TypWirkung
titlestringSichtbarer Titel des Strukturknotens
descriptionstringOptionale Beschreibung des Knotens
ordernumberExplizite Sortierreihenfolge
iconstring | falseIcon setzen oder unterdrücken
badgestring | objectBadge-Text oder strukturierte Badge-Metadaten
hiddenbooleanKnoten aus der Navigation ausblenden
navigationfalse | objectNavigation deaktivieren oder Navigationsmetadaten setzen
sidebar'section' | 'group'Knoten als Bereich oder Gruppe darstellen
content/en/1.docs/6.operations/.navigation.yml
title: Betrieb
icon: lucide:cloud-cog
sidebar: group

sidebar: section erzeugt einen Bereich im Docs-Umschalter. sidebar: group erzeugt eine beschriftete Gruppe im aktiven Bereich. Strukturelle Metadaten gehören in die Verzeichnisdatei, Seitendaten in das verschachtelte navigation-Objekt der Seite.

Blogbeiträge

Die Collection blog existiert nur mit blog: true.

FeldTypPflichtZweck
titlestringJaBeitragstitel
descriptionstringJaZusammenfassung und Metadaten
badgestringNeinKurzes Beitragslabel
datestringJaVeröffentlichungswert in der Blog-UI, Feed-pubDate und Sitemap-lastmod
readingTimestringJaVerfasste Lesezeit-Beschriftung
authorReferenz auf authorsJaPfadähnliche Referenz auf den Autor-Datensatz
imagestringNeinBild-URL oder öffentlicher Pfad
redirectFromstring[]NeinFrühere öffentliche URLs, die dauerhaft auf diesen Artikel weiterleiten
content/de/2.blog/produkt-update.md
---
title: Produkt-Update
description: Änderungen im Juli-Release.
badge: Release
date: "2026-07-21"
readingTime: 4 Min. Lesezeit
author: authors/ginko-docs-team
image: /images/juli-release.png
---

Das Juli-Release verbessert ...

Die Factory berechnet readingTime nicht; date muss ein ISO-Datum (YYYY-MM-DD) sein. Blogbeiträge akzeptieren die Docs-spezifischen Felder navigation und sidebar nicht.

Autor-Datensätze

Autoren sind JSON-Dateien in der datenbasierten Collection authors.

FeldTypPflicht
slugstringJa
namestringJa
rolestringJa
biostringJa
avatarstringJa
linksArray<{ label: string; href: string }>Nein
content/de/authors/ginko-docs-team.json
{
  "slug": "ginko-docs-team",
  "name": "Ginko Docs Team",
  "role": "Dokumentationsentwicklung",
  "bio": "Das Team pflegt die Produktdokumentation.",
  "avatar": "/images/authors/ginko-docs-team.png",
  "links": [
    {
      "label": "GitHub",
      "href": "https://github.com/example"
    }
  ]
}

Eine verfasste Blogreferenz lässt die Dateiendung weg: authors/ginko-docs-team. Bei einer lokalisierten Website muss der referenzierte Autor-Datensatz im entsprechenden Sprachbaum liegen.

Links in Header und Mobile-Menü werden in app/app.config.ts konfiguriert, nicht im Content-Frontmatter. Ein eigener Link hat dieses Schema:

GinkoDocsLink
interface GinkoDocsLink {
  label: { en: string; de?: string };
  to: { en: string; de?: string };
  icon?: string;
  description?: { en: string; de?: string };
}

Setze ginkoDocs.nav.links auf 'auto', um Dokumentation und den optionalen Bloglink abzuleiten. Ein Array in dieser Form ersetzt die generierte Navigation.