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.
| Einstiegspunkt | Was er ist |
|---|---|
@lupinum/ginko-docs | Die Nuxt-Ebene für extends in nuxt.config.ts |
@lupinum/ginko-docs/config | Die Bausteine und Seitenadressen für ginko.config.ts |
@lupinum/ginko-docs/pages | Nuxt-Modul, das die Seiten der Ebene anmeldet. Die Ebene lädt es selbst. |
@lupinum/ginko-docs/icons | Nuxt-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
// 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.
// nuxt.config.ts
export default defineNuxtConfig({
extends: ['@lupinum/ginko-docs'],
ginkoDocs: { brick: 'wissen' }, // derselbe Schlüssel wie docsCollection({ brick: 'wissen' })
})config
import { blogCollections, blogPages, changelogCollection, changelogPages, components, docsCollection, docsHome, homePages } from '@lupinum/ginko-docs/config'
import type { DocsSource } from '@lupinum/ginko-docs/config'| Export | Art | Wofür |
|---|---|---|
docsCollection({ locales, base?, source?, navExtras?, brick?, label?, max? }) | Funktion | Der Doku-Baustein. Seiten unter base (Vorgabe /docs). |
docsHome({ source? }) | Funktion | Die optionale Startseite: content/home.md. |
blogCollections({ locales, source?, max? }) | Funktion | Der optionale Blog: { posts, authors }, in bricks ausgebreitet. |
changelogCollection({ source?, max? }) | Funktion | Der optionale Changelog. |
homePages({ locales }) | Funktion | Die Adressen der Startseite je Sprache, für pages. |
blogPages({ locales }) | Funktion | Die Adressen der Blog-Liste je Sprache, für pages. |
changelogPages({ locales }) | Funktion | Die Adressen des Changelogs je Sprache, für pages. |
components | Objekt | Das Register der Markdown-Komponenten aus @lupinum/ginko-components, für components in defineSite. |
DocsSource | Typ | '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:
| Komponente | Props und Slots | Wofür |
|---|---|---|
<DocsSearch /> | shortcut (Vorgabe true): / und Strg/⌘ K öffnen die Suche | Die Suche, zum Beispiel im eigenen Kopf der Seite |
<DocsLanguage /> | list: eine Reihe Links statt eines Menüs | Die Sprachen der aktuellen Seite |
<DocsThemeToggle /> | segmented: der Dreifach-Schalter Auto/Hell/Dunkel | Der Schalter für hell und dunkel |
<DocsShell> | Slot default für die Seite, Slot bar für Bedienelemente in der Leiste auf dem Handy | Navigation und Suche um eine eigene Seite |
<Icon name="lucide:…" /> | name | Ein 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/:
| Komponente | Props | Wo sie erscheint |
|---|---|---|
DocsPageEnd | doc, der Eintrag der Seite | Nach dem Text jeder Doku-Seite, vor „Diese Seite bearbeiten“ und Zurück/Weiter |
DocsSidebarEnd | keine | Unter 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.