Theme entwickeln & veröffentlichen
Hier wird beschrieben, wie Änderungen am Haupt-Theme entwickelt, getestet und ins Repository gepusht werden – damit alle Kundenprojekte sie per Update einziehen können.
Lokale Entwicklung starten
cd ~/pfad/zu/musterstadt-starter-theme
pnpm dev
Welche Dateien darf ich im Haupt-Theme bearbeiten?
Nur die gemeinsamen Theme-Dateien gehören ins Haupt-Repo:
| Erlaubt ✅ | Nicht im Haupt-Repo editieren ❌ |
|---|---|
src/components/** (außer custom/) | src/consts.ts → nur Template-Wert |
src/layouts/** | src/content/** → nur Beispiel-Content |
src/pages/** | public/admin/config.yml → nur Platzhalter |
src/utils/** | src/styles/custom.css |
src/lib/** | src/components/custom/** |
src/styles/global.css |
Kundeneigene Dateien werden beim Theme-Update geschützt (via .gitattributes merge=ours) und niemals überschrieben.
Änderungen committen und pushen
cd ~/pfad/zu/musterstadt-starter-theme
git add -A
git commit -m "feat(header): neues responsives Menü"
git push origin main
Das Theme-Repo ist damit aktuell. Alle Kundenprojekte können das Update jetzt per pnpm theme:update einziehen.
CLI-Installer aktualisieren
Der CLI-Installer (packages/create-musterstadt-theme/) ist ein separates Git-Repository im Unterordner. Er hat seinen eigenen git init und eigenen Forgejo-Remote.
Falls du Änderungen an packages/create-musterstadt-theme/bin/index.mjs oder package.json gemacht hast:
cd ~/pfad/zu/musterstadt-starter-theme/packages/create-musterstadt-theme
git add -A
git commit -m "fix: ..."
git push
Der CLI muss nur aktualisiert werden, wenn sich die Projekt-Initialisierungslogik selbst ändert – nicht bei normalen Theme-Änderungen.