Zum Hauptinhalt springen

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.

app/app.config.ts
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

FeldTypStandardVerhalten
theme.neutralName einer Neutralpalette'zinc'Flächen, Text, Rahmen, Eingaben und Code
theme.primaryName 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.

app/app.config.ts
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

FeldTypStandard
prose.appearance'quiet' | 'tint''quiet'
prose.componentsPartielle Zuordnung von Familie zu Appearancecallout, 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

FeldTypStandardVerwendung
site.nameLokalisierter TextGinko Docs in beiden SprachenHeader, Metadaten, strukturierte Daten, Social Images
site.descriptionLokalisierter TextDocumentation sites built with Nuxt and Ginko Content. / Dokumentations-Sites auf Basis von Nuxt und Ginko Content.Metadaten und strukturierte Daten
site.urlstringhttp://localhost:3000Canonical-, Alternate-, Raw- und MCP-URLs
site.logo.lightstring/logo.svgLogo für Light Mode und Social Images
site.logo.darkstring/logo-dark.svgLogo für Dark Mode
site.docsSidebarSwitcher'dropdown' | 'list' | 'tabs''tabs'Auswahl des Dokumentationsbereichs
site.lupinumAttributionbooleantrueLupinum-Hinweis im Footer

Setze eine Produktions-URL. Der lokale Standard würde im Deployment falsche Canonical- und Agent-Links erzeugen.

Hauptnavigation

FeldTypStandard
nav.links'auto' | GinkoDocsLink[]'auto'
nav.socialIconsbooleanfalse

'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.

app/app.config.ts
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

FeldTypStandardVerhalten
banner.enabledbooleanfalseBanner explizit ein- oder ausblenden
banner.idstring'default'Erzeugt den Dismissal-Key ginko-docs:banner:<id>
banner.textLokalisierter Textnicht gesetzt; Laufzeit-Fallback: Introducing the Ginko Content docs pipeline. / Neu: die Ginko-Content-Dokumentationspipeline.Ankündigungstext
banner.link.labelLokalisierter Textnicht gesetzt; Laufzeit-Fallback: Read the announcement / Ankündigung lesenOptionale Link-Beschriftung
banner.link.toLokalisierter Textnicht gesetztOptionales Ziel
banner.showOnLandingbooleantrueBanner auf der Landing Page anzeigen

Ändere banner.id, wenn eine überarbeitete Ankündigung nach dem Schließen einer älteren wieder erscheinen soll.

Analytics bleibt deaktiviert, bis eine Plausible-Site-Script-ID gesetzt ist.

FeldTypStandard
analytics.plausible.scriptIdstringnicht gesetzt
social.githubGinkoDocsSocialEntrynicht gesetzt
social.discordGinkoDocsSocialEntrynicht gesetzt
social.linkedinGinkoDocsSocialEntrynicht 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:

app/app.config.ts
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

FeldTypStandardVerhalten
feedback.enabledbooleanfalseHilfreich-/Nicht-hilfreich-Abfrage anzeigen
ogImage.enabledbooleantrueSocial Image pro Seite generieren
ogImage.componentstring'GinkoDocs'Template-Komponente für Nuxt OG Image
markdownActions.chatGptbooleantrueChatGPT-Aktion anzeigen
markdownActions.claudebooleantrueClaude-Aktion anzeigen
markdownActions.mcpbooleantrueMCP-URL-Aktion anzeigen
images.zoombooleantrueClick-to-zoom für Prose-Bilder aktivieren
toc.depth2 | 3 | 43Ü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 ist standardmäßig nicht gesetzt.

FeldTypLaufzeit-Standard
repository.urlstringerforderlich, wenn repository gesetzt ist
repository.branchstring'main'
repository.contentDirectorystring'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:

FeldStandard
landing.titlePublish structured documentation. / Veröffentliche strukturierte Dokumentation.
landing.descriptionA 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.labelGet started / Erste Schritte
landing.primary.to/docs / /de/dokumentation
landing.secondarynicht gesetzt
landing.heronicht gesetzt
landing.installnicht gesetzt
landing.features[]
landing.agentnicht gesetzt
landing.ctanicht gesetzt

Die vollständige Form lautet:

ginkoDocs.landing
title: LocalizedText required
Hero-Überschrift.
description: LocalizedText required
Hero-Absatz unter dem Titel.
primary: Link required
Primäre Hero-Aktion mit lokalisiertem label und to.
secondary?: Link
Optionale zweite Hero-Aktion.
hero.media?: HeroMedia
Hero-Bild, Code-Panel oder Code-Tabs. Die akzeptierten Formen dokumentiert das Panel unten.
install.command?: string
Kopierbarer Installationsbefehl unter den Hero-Aktionen.
features: FeatureCard[] = []
Feature-Zusammenfassungen als Karten.
agent?: AgentBand
Dunkles Band über die volle Breite mit lokalisiertem Text und einem Terminal-Transcript.
cta?: ClosingCta
Abschließende Aktion; ihr primärer Link fällt auf landing.primary zurück.

Hero-Medien sind eine über type unterschiedene Union; jeder Tab des Panels unten dokumentiert eine akzeptierte Form:

hero.media
type: "image" required
Rendert einen Produkt-Screenshot.
src: string required
Öffentlicher Pfad des Bildes.
alt: string required
Alternativtext für Screenreader.