Grav individuell anpassen
Bei mir fing es mit kleineren Formatierungen an, kleine Unzufriedenheiten wie etwas aussah oder wieviel Platz es einnahm bzw. verschwendete und ich stieß früh auf eine custom.css ohne Inhalt im Grav Quark Theme, die für solche Anpassungen gedacht war. Mach das nicht - Plugins und Themes werden bei sogenannten Updates nicht aktualisiert, sie werden gelöscht und die neue Version installiert. Deine Änderungen sind dann weg!
Es gibt in Grav mehrere Wege das zu vermeiden. Vermutlich hast du in einer Installationsanweisung schon einmal einen Hinweis gesehen die Konfigurationsdatei in ein Verzeichnis unterhalb von user/config/ zu kopieren und dann nur diese Kopie anzupassen. Das ist einer der Wege. Aber wie ist das bei größeren Anpassungswünschen? Eine Twig Vorlage verändern oder gar eigene, ganz neue Vorlagen hinzufügen? Das mag zuerst kompliziert klingen, aber ließ einfach weiter und bilde dir erst am Ende des Beitrags eine Meinung.
Ein Child-Theme erstellen
Keine Sorge, du musst kein eigenständiges Theme entwickeln. Du hast dich ja bereits für ein Theme entschieden und das sollst du auch weiter nutzen. Ein Kind deines Themes ist mit wenigen Handgriffen erstellt. Es müssen dabei nur ein paar Regeln beachtet werden, damit Grav es auch als eigenständiges Theme erkennt so das du es später aktivieren kannst. Ich nehme als Beispiel das Quark 2 Theme, da ich es selbst verwende und so sicherstellen kann die Grav Regeln richtig wiederzugeben.
Initialisierung
Dein Theme braucht einen Namen den du zwar frei vergeben kannst, ich würde aber dazu raten den Namen des Eltern-Themes mit aufzunehmen um das später auch zuordnen zu können. Wenn du das Admin2 Plugin nutzt, kannst du einfach unter Themes dein Plugin auswählen und dir den Slug von dessen Übersichtsseite notieren, ohne Admin2 Plugin musst du im Dateisystem unterhalb von user/themes/ in das Verzeichnis deines genutzten Themes wechseln (in meinem Beispiel wäre das user/themes/quark2/) und dort aus der Dateiblueprints.yaml'' den Slug auslesen (welcher im Beispiel auch quark2 ist). Ich habe mich dafür entschieden aus einem Teil des Hostname (wichtig bei Multisite-Setups), dem Eltern-Theme und einem angehängten "child" den neuen Namen zusammenzusetzen: jcs-quark2-child
Die Gedankenstriche dienen zwar nur der Lesbarkeit, aber das hilft ja auch im Dateisystem. Also leg damit ein neues Verzeichnis unterhalb von user/themes/ an:
cd user/themes
mkdir jcs-quark2-child
In das neue Verzeichnis kopierst du dann 3 Dateien aus dem Theme das du bereits verwendest, zwei davon tragen den Slug des Themes im Namen und müssen das auch in deinem neuen Child-Theme wieder tun:
cp user/themes/quark2/blueprints.yaml user/themes/jcs-quark2-child/blueprints.yaml
cp user/themes/quark2/quark2.yaml user/themes/jcs-quark2-child/jcs-quark2-child.yaml
cp user/themes/quark2/quark2.php user/themes/jcs-quark2-child/jcs-quark2-child.php
# wenn du es später schick im Admin2 Plugin angezeigt bekommen möchtest, auch noch die Images
cp user/themes/quark2/screenshotjpg user/themes/jcs-quark2-child/screenshotjpg
cp user/themes/quark2/thumbnail.jpg user/themes/jcs-quark2-child/thumbnail.jpg
