Tippe, um Seiten und Abschnitte zu finden.

Zum Inhalt
Ginko

Exporte der Doku-Ebene

Was @lupinum/ginko-docs öffentlich anbietet. Die Einstiegspunkte des Pakets, die Funktionen für ginko.config.ts, die Option in nuxt.config.ts, die Komponenten, die Override-Stellen und was intern bleibt.

Einstiegspunkte

@lupinum/ginko-docs hat vier Einstiegspunkte. Importiere nur diese Pfade; alle anderen Dateien im Paket sind intern und können sich in jedem Release ändern.

EinstiegspunktWas er ist
@lupinum/ginko-docsDie Nuxt-Ebene für extends in nuxt.config.ts
@lupinum/ginko-docs/configDie Bausteine und Seitenadressen für ginko.config.ts
@lupinum/ginko-docs/pagesNuxt-Modul, das die Seiten der Ebene anmeldet. Die Ebene lädt es selbst.
@lupinum/ginko-docs/iconsNuxt-Modul, das die Icons beim Build bündelt. Die Ebene lädt es selbst.

Die beiden Module trägst du nicht in modules ein: extends: ['@lupinum/ginko-docs'] bringt sie mit.

Die Ebene

ts
// nuxt.config.ts
import ginko from './ginko.config.ts'

export default defineNuxtConfig({
  extends: ['@lupinum/ginko-docs'],
  modules: ['@lupinum/ginko/nuxt'],
  ginko,
})

Der Einstiegspunkt ist die Konfiguration der Ebene, keine Sammlung von Funktionen. Über den Ebenen-Mechanismus von Nuxt kommen Seiten, Layout, Komponenten, CSS und die Module oben dazu, außerdem @lupinum/ginko-components.

Die einzige Option in nuxt.config.ts ist ginkoDocs.brick: der Schlüssel des Doku-Bausteins, wenn er nicht docs heißt.

ts
// nuxt.config.ts
export default defineNuxtConfig({
  extends: ['@lupinum/ginko-docs'],
  ginkoDocs: { brick: 'wissen' }, // derselbe Schlüssel wie docsCollection({ brick: 'wissen' })
})

config

ts
import { blogCollections, blogPages, changelogCollection, changelogPages, components, docsCollection, docsHome, homePages } from '@lupinum/ginko-docs/config'
import type { DocsSource } from '@lupinum/ginko-docs/config'
ExportArtWofür
docsCollection({ locales, base?, source?, navExtras?, brick?, label?, max? })FunktionDer Doku-Baustein. Seiten unter base (Vorgabe /docs).
docsHome({ source? })FunktionDie optionale Startseite: content/home.md.
blogCollections({ locales, source?, max? })FunktionDer optionale Blog: { posts, authors }, in bricks ausgebreitet.
changelogCollection({ source?, max? })FunktionDer optionale Changelog.
homePages({ locales })FunktionDie Adressen der Startseite je Sprache, für pages.
blogPages({ locales })FunktionDie Adressen der Blog-Liste je Sprache, für pages.
changelogPages({ locales })FunktionDie Adressen des Changelogs je Sprache, für pages.
componentsObjektDas Register der Markdown-Komponenten aus @lupinum/ginko-components, für components in defineSite.
DocsSourceTyp'files' (Vorgabe) oder 'platform': woher ein Baustein seine Inhalte liest.

Die Bausteine lesen Dateien, solange du nichts anderes sagst: Doku liegt meist in Git. Mit source: 'platform' liegen die Inhalte auf der Plattform, und Redakteure bearbeiten sie im Studio. Wie du die Funktionen einsetzt, steht auf Doku-Seiten.

App-Konfiguration

Die Optionen stehen unter docs in der app.config.ts der Seite. Die Ebene erweitert die Typen von defineAppConfig, also prüft TypeScript jede Option, ohne dass du einen Typ importierst. Die Liste der Optionen steht auf Doku-Seiten.

Die Texte der Ebene sind Meldungen unter docs.*. Die eigenen Meldungen der Seite gewinnen Schlüssel für Schlüssel. Die Ebene bringt Englisch, Deutsch und Französisch mit.

Komponenten

Diese Komponenten sind öffentlich und bleiben zwischen Releases stabil:

KomponenteProps und SlotsWofür
<DocsSearch />shortcut (Vorgabe true): / und Strg/⌘ K öffnen die SucheDie Suche, zum Beispiel im eigenen Kopf der Seite
<DocsLanguage />list: eine Reihe Links statt eines MenüsDie Sprachen der aktuellen Seite
<DocsThemeToggle />segmented: der Dreifach-Schalter Auto/Hell/DunkelDer Schalter für hell und dunkel
<DocsShell>Slot default für die Seite, Slot bar für Bedienelemente in der Leiste auf dem HandyNavigation und Suche um eine eigene Seite
<Icon name="lucide:…" />nameEin Icon aus dem Bündel der Ebene. Bringt die Seite @nuxt/icon mit, gewinnt deren Icon.

Zwei leere Komponenten sind Override-Stellen. Die Seite ersetzt sie mit einer eigenen Datei gleichen Namens in app/components/:

KomponentePropsWo sie erscheint
DocsPageEnddoc, der Eintrag der SeiteNach dem Text jeder Doku-Seite, vor „Diese Seite bearbeiten“ und Zurück/Weiter
DocsSidebarEndkeineUnter der Navigation, in der Seitenleiste und im Menü auf dem Handy

Beispiele dazu stehen auf Aussehen anpassen.

Intern

Alles andere ist intern und kann sich in jedem Release ändern: die übrigen Docs*-Komponenten, die useDocs*-Composables, die Dateien unter app/ und die CSS-Klassen. Die Funktionen, die @lupinum/ginko-docs/icons neben dem Modul exportiert, sind für die Tests des Pakets da. Für das Aussehen sind die Tokens auf Aussehen anpassen die öffentliche Schnittstelle, nicht die Klassen.