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.
| Feld | Typ | Pflicht | Zweck |
|---|---|---|---|
title | string | Ja | Seitentitel, Metadaten und Standardlabel der Navigation |
description | string | Ja | Seitenbeschreibung sowie Such- und SEO-Zusammenfassung |
icon | string | Nein | Icon-Metadaten für Seite oder Navigation |
badge | string | Nein | Kurzes Navigations-Badge |
updated | string | Nein | Sichtbare Aktualisierungszeile, Sitemap-lastmod, Agent-Metadatum und TechArticle.dateModified |
redirectFrom | string[] | Nein | Frühere öffentliche URLs, die dauerhaft auf diese Seite weiterleiten |
sidebar | 'section' | 'group' | Nein | Strukturelle Sidebar-Rolle; auf Seiten wird das verschachtelte Objekt bevorzugt |
navigation | object | Nein | Seitenspezifische Navigationsmetadaten |
Das Objekt navigation akzeptiert ausschließlich diese Felder:
| Feld | Typ | Pflicht |
|---|---|---|
navigation.title | string | Nein |
navigation.icon | string | Nein |
navigation.badge | string | Nein |
navigation.sidebar | 'section' | 'group' | Nein |
Das Docs-Schema akzeptiert ein navigation-Objekt, aber nicht navigation: false. Schreibe das Objekt als verschachteltes YAML:
---
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:
---
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:
title: Referenz
icon: lucide:braces
sidebar: section| Feld | Akzeptierter Typ | Wirkung |
|---|---|---|
title | string | Sichtbarer Titel des Strukturknotens |
description | string | Optionale Beschreibung des Knotens |
order | number | Explizite Sortierreihenfolge |
icon | string | false | Icon setzen oder unterdrücken |
badge | string | object | Badge-Text oder strukturierte Badge-Metadaten |
hidden | boolean | Knoten aus der Navigation ausblenden |
navigation | false | object | Navigation deaktivieren oder Navigationsmetadaten setzen |
sidebar | 'section' | 'group' | Knoten als Bereich oder Gruppe darstellen |
title: Betrieb
icon: lucide:cloud-cog
sidebar: groupsidebar: 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.
| Feld | Typ | Pflicht | Zweck |
|---|---|---|---|
title | string | Ja | Beitragstitel |
description | string | Ja | Zusammenfassung und Metadaten |
badge | string | Nein | Kurzes Beitragslabel |
date | string | Ja | Veröffentlichungswert in der Blog-UI, Feed-pubDate und Sitemap-lastmod |
readingTime | string | Ja | Verfasste Lesezeit-Beschriftung |
author | Referenz auf authors | Ja | Pfadähnliche Referenz auf den Autor-Datensatz |
image | string | Nein | Bild-URL oder öffentlicher Pfad |
redirectFrom | string[] | Nein | Frühere öffentliche URLs, die dauerhaft auf diesen Artikel weiterleiten |
---
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.
| Feld | Typ | Pflicht |
|---|---|---|
slug | string | Ja |
name | string | Ja |
role | string | Ja |
bio | string | Ja |
avatar | string | Ja |
links | Array<{ label: string; href: string }> | Nein |
{
"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.
App-Navigationslinks
Links in Header und Mobile-Menü werden in app/app.config.ts konfiguriert, nicht im Content-Frontmatter. Ein eigener Link hat dieses Schema:
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.