Plugins
Installation
npm install @nera-static/plugin-navigation
Jede Abhängigkeit, deren Name mit @nera-static/ beginnt, wird automatisch entdeckt und
angewendet — kein Registrierungsschritt.
Der Hook-Vertrag
Ein Plugin ist ein ESM-Modul, das einen oder beide Hooks exportiert:
export function getAppData({ app, pagesData }) {
return { ...app, myKey: 'value' } // must return a plain object
}
export function getMetaData({ app, pagesData }) {
return pagesData // must return an array
}
getAppData läuft zuerst; getMetaData sieht das app, das es zurückgegeben hat. Halte Hooks
synchron — ein asynchroner Hook kann app auf älteren Generator-Versionen auslöschen.
Die Konfiguration liegt in deinem Projekt
Jedes Plugin liest config/<name>.yaml aus deiner Site, nicht aus dem Paket.
Das im Paket mitgelieferte YAML ist Dokumentation; kopiere es in dein config/
und bearbeite es. Fehlende Schlüssel fallen auf sinnvolle Standardwerte zurück.
Reihenfolge
config/plugin-order.yaml steuert die Ausführungsreihenfolge: Namen unter start: laufen
zuerst, dann alles Übrige alphabetisch, dann Namen unter end:. Die Suche läuft
zuletzt, damit sie die endgültigen Seitendaten indexiert.
Templates
Plugins, die Views mitliefern, stellen einen Publish-Befehl bereit:
npx nera-navigation # copies templates into views/vendor/plugin-navigation/
include sie dann aus deinen Layouts. Das Veröffentlichen wird übersprungen, wenn der Ordner
bereits existiert — lösche ihn (oder übergib --force), um Template-Updates einzuspielen.