app.config.ts
Vollständige Referenz für aktive Darstellungsoptionen von Ginko Docs und ihre Layer-Standards.
app/app.config.ts besitzt öffentliche Identität, Navigation, optionale UI-Funktionen, Analytics und Landing-Page-Texte. Nuxt führt Consumer-Werte mit den Layer-Standards zusammen. Setze daher nur Felder, die du bewusst ändern willst.
export default defineAppConfig({
ginkoDocs: {
site: {
name: { en: "Example Docs", de: "Example-Dokumentation" },
description: {
en: "Documentation for Example.",
de: "Dokumentation für Example.",
},
url: "https://docs.example.com",
logo: { light: "/logo.svg", dark: "/logo-dark.svg" },
},
},
});Lokalisierte Werte verwenden { en: string, de?: string }. Fehlt de, nutzt der Layer den englischen Wert.
Theme-Paletten
| Feld | Typ | Standard | Verhalten |
|---|---|---|---|
theme.neutral | Name einer Neutralpalette | 'zinc' | Flächen, Text, Rahmen, Eingaben und Code |
theme.primary | Name einer Primärpalette | 'neutral' | Primäraktionen, Fokusringe und eine Diagrammfarbe |
Neutralpaletten sind slate, gray, zinc, neutral, stone, taupe, mauve, mist und olive. Primärpaletten sind neutral, red, orange, amber, yellow, lime, green, emerald, teal, cyan, sky, blue, indigo, violet, purple, fuchsia, pink und rose. Beide Felder akzeptieren außerdem custom für eine vom Consumer definierte Palette.
export default defineAppConfig({
ginkoDocs: {
theme: {
neutral: "stone",
primary: "blue",
},
},
});primary: 'neutral' folgt der gewählten Neutralpalette und erhält das standardmäßige monochrome Erscheinungsbild. Unter Design und Overrides findest du die Variablen für eigene Paletten und direkte Token-Overrides.
Prosa-Erscheinungsbild
| Feld | Typ | Standard |
|---|---|---|
prose.appearance | 'quiet' | 'tint' | 'quiet' |
prose.components | Partielle Zuordnung von Familie zu Appearance | callout, aside, excerpt und tabs verwenden 'tint' |
Eine verfasste Komponenten-Prop appearance überschreibt den Familienwert; der Familienwert überschreibt prose.appearance. Familien sind callout, aside, excerpt, cards, readMore, accordion, tabs, code, files, api, figure, quiz, steps und timeline.
Website
| Feld | Typ | Standard | Verwendung |
|---|---|---|---|
site.name | Lokalisierter Text | Ginko Docs in beiden Sprachen | Header, Metadaten, strukturierte Daten, Social Images |
site.description | Lokalisierter Text | Documentation sites built with Nuxt and Ginko Content. / Dokumentations-Sites auf Basis von Nuxt und Ginko Content. | Metadaten und strukturierte Daten |
site.url | string | http://localhost:3000 | Canonical-, Alternate-, Raw- und MCP-URLs |
site.logo.light | string | /logo.svg | Logo für Light Mode und Social Images |
site.logo.dark | string | /logo-dark.svg | Logo für Dark Mode |
site.docsSidebarSwitcher | 'dropdown' | 'list' | 'tabs' | 'tabs' | Auswahl des Dokumentationsbereichs |
site.lupinumAttribution | boolean | true | Lupinum-Hinweis im Footer |
Setze eine Produktions-URL. Der lokale Standard würde im Deployment falsche Canonical- und Agent-Links erzeugen.
Hauptnavigation
| Feld | Typ | Standard |
|---|---|---|
nav.links | 'auto' | GinkoDocsLink[] | 'auto' |
nav.socialIcons | boolean | false |
'auto' ergänzt Dokumentation sowie Blog, wenn Blogrouten existieren. Ein Array ersetzt diese generierten Links vollständig.
nav.socialIcons zeigt die konfigurierten Social Links als Icon-Buttons in der Kopfzeile und ersetzt im mobilen Menü die beschrifteten Pills durch dieselben Icons. Der Standard ist false, damit ein Upgrade keiner bestehenden Kopfzeile Links hinzufügt.
export default defineAppConfig({
ginkoDocs: {
nav: {
links: [
{
label: { en: "Guides", de: "Anleitungen" },
to: { en: "/docs", de: "/de/dokumentation" },
icon: "lucide:book-open",
description: {
en: "Learn to use Example.",
de: "Example kennenlernen.",
},
},
],
},
},
});Ein Link benötigt lokalisierte Werte für label und to; icon und die lokalisierte description sind optional. URLs mit http:// oder https:// gelten als extern.
Ankündigungsbanner
| Feld | Typ | Standard | Verhalten |
|---|---|---|---|
banner.enabled | boolean | false | Banner explizit ein- oder ausblenden |
banner.id | string | 'default' | Erzeugt den Dismissal-Key ginko-docs:banner:<id> |
banner.text | Lokalisierter Text | nicht gesetzt; Laufzeit-Fallback: Introducing the Ginko Content docs pipeline. / Neu: die Ginko-Content-Dokumentationspipeline. | Ankündigungstext |
banner.link.label | Lokalisierter Text | nicht gesetzt; Laufzeit-Fallback: Read the announcement / Ankündigung lesen | Optionale Link-Beschriftung |
banner.link.to | Lokalisierter Text | nicht gesetzt | Optionales Ziel |
banner.showOnLanding | boolean | true | Banner auf der Landing Page anzeigen |
Ändere banner.id, wenn eine überarbeitete Ankündigung nach dem Schließen einer älteren wieder erscheinen soll.
Analytics und Social Links
Analytics bleibt deaktiviert, bis eine Plausible-Site-Script-ID gesetzt ist.
| Feld | Typ | Standard |
|---|---|---|
analytics.plausible.scriptId | string | nicht gesetzt |
social.github | GinkoDocsSocialEntry | nicht gesetzt |
social.discord | GinkoDocsSocialEntry | nicht gesetzt |
social.linkedin | GinkoDocsSocialEntry | nicht gesetzt |
Social-Einträge erscheinen in der konfigurierten Reihenfolge — steht Discord zuerst, steht es auch in der Kopfzeile vorn. Eine reine URL verwendet Label und Icon der Plattform, ein Objekt überschreibt beides einzeln:
export default defineAppConfig({
ginkoDocs: {
nav: { socialIcons: true },
social: {
discord: { href: "https://discord.gg/example", icon: "brand:discord" },
github: "https://github.com/example/repo",
},
},
});icon akzeptiert jeden Iconify-Namen, den die Anwendung registriert hat. Der Layer bündelt ein geschlossenes Icon-Set ohne API-Fallback; eine Site mit echten Markenzeichen registriert diese über customCollections von Nuxt Icon und benennt sie hier. Lucide enthält kein Discord-Zeichen, der eingebaute Standard ist deshalb ein generisches Chat-Icon.
Kopiere scriptId aus der Site-spezifischen Skript-URL in Plausible. Verwende für https://plausible.io/js/pa-ExampleSiteScriptId.js nur ExampleSiteScriptId. Die ID ist öffentlich und kann in das Repository übernommen werden. Lege sie nicht in einer Umgebungsvariable oder einem Secret ab.
Plausible verwaltet erweiterte Messungen wie ausgehende Links, Datei-Downloads und 404-Seiten. Konfiguriere sie in den Site-Installation-Einstellungen von Plausible. Ginko Docs lädt kein Analytics-Skript, wenn scriptId nicht gesetzt ist.
Seitenfunktionen
| Feld | Typ | Standard | Verhalten |
|---|---|---|---|
feedback.enabled | boolean | false | Hilfreich-/Nicht-hilfreich-Abfrage anzeigen |
ogImage.enabled | boolean | true | Social Image pro Seite generieren |
ogImage.component | string | 'GinkoDocs' | Template-Komponente für Nuxt OG Image |
markdownActions.chatGpt | boolean | true | ChatGPT-Aktion anzeigen |
markdownActions.claude | boolean | true | Claude-Aktion anzeigen |
markdownActions.mcp | boolean | true | MCP-URL-Aktion anzeigen |
images.zoom | boolean | true | Click-to-zoom für Prose-Bilder aktivieren |
toc.depth | 2 | 3 | 4 | 3 | Überschriften bis h2, h3 oder h4 aufnehmen |
Die Feedback-Abfrage erscheint nur, wenn feedback.enabled auf true steht und eine Plausible-Script-ID gesetzt ist. Feedback-Events verwenden den Namen docs-feedback mit den Eigenschaften path, helpful und locale. Lege das passende Custom-Event-Ziel und die Eigenschaften in Plausible an. Eine negative Antwort kann zu einem vorausgefüllten Issue führen, wenn repository gesetzt ist.
Die Markdown-Aktionsfelder beeinflussen nur das Menü. Agent-Routen, Markdown-Aushandlung, Link-Header und MCP-Registrierung hängen von Nuxt-Modulkonfiguration und Deployment-Ziel ab.
Repository-Links
repository ist standardmäßig nicht gesetzt.
| Feld | Typ | Laufzeit-Standard |
|---|---|---|
repository.url | string | erforderlich, wenn repository gesetzt ist |
repository.branch | string | 'main' |
repository.contentDirectory | string | 'content' |
Die URL muss auf die Repository-Basis zeigen. Ginko Docs leitet daraus Edit- und New-Issue-Links ab.
Landing Page
Der Layer enthält lokalisierte Texte für Titel, Beschreibung und primäre Aktion. Die initiale Konfiguration lautet:
| Feld | Standard |
|---|---|
landing.title | Publish structured documentation. / Veröffentliche strukturierte Dokumentation. |
landing.description | A Nuxt layer for searchable, localized documentation with stable routes and agent-readable output. / Ein Nuxt-Layer für durchsuchbare, lokalisierte Dokumentation mit stabilen Routen und agentenlesbarer Ausgabe. |
landing.primary.label | Get started / Erste Schritte |
landing.primary.to | /docs / /de/dokumentation |
landing.secondary | nicht gesetzt |
landing.hero | nicht gesetzt |
landing.install | nicht gesetzt |
landing.features | [] |
landing.agent | nicht gesetzt |
landing.cta | nicht gesetzt |
Die vollständige Form lautet:
title: LocalizedText required description: LocalizedText required primary: Link required label und to.secondary?: Linkhero.media?: HeroMediainstall.command?: stringfeatures: FeatureCard[] = []agent?: AgentBandcta?: ClosingCtalanding.primary zurück.Hero-Medien sind eine über type unterschiedene Union; jeder Tab des Panels unten dokumentiert eine akzeptierte Form:
type: "image" required src: string required alt: string required