changelog 21.06.2025
ich habe mich entschieden meine anpassungen hier ein wenig zu dokumentieren. ich liste diese changelogs nicht auf der hauptseite und im RSS feed, linke aber gelegentlich aus der hauptseite auf sie. ich vermute das interessiert nicht so viele leute, was ich hier im maschinenraum treibe. kategorie bleibt die gute alte über wirres kategorie und verschlagwortet werden die changelogs natürlich mit #changelog.
cache
der standardmässige file cache von kirby hat eigentlich ganz gut funktioniert. allerdings lief weiterhin alles über php und damit ein bisschen laggy. die uberspace hosts scheinen mir nicht irre performant zu sein, sowohl von der cpu-leistinmg als auch vom RAM. und wenn ich dann gelegentich den media-ordner mit den vorgenerierten thumnails lösche und die seiten neu gerendert und gecached werden, merkt man schon wie die VM ins schwitzen gerät und gelegentlich den PHP prozess killt.
jedenfalls bin ich drauf gekommen als ich merkte, dass die sitemap.xml nicht gecached ist. die generierung ist eher aufwändig und bots warten nicht gerne, bzw. sollten eigentlich keine überflüssige last erzeugen. die sitemap liess sich irgendwie nicht beim ersten versuch mit dem filecache sichern, weshalb ich bei der weiteren recherche auf staticcache stiess.
This plugin will give you the performance of a static site generator for your regular Kirby installations. Without a huge setup or complex deployment steps, you can run your Kirby site on any server – cheap shared hosting, VPS, you name it – and enable the static cache to get incredible speed on demand.
Rough benchmark comparison for our Starterkit home page:
Without page cache: ~70 ms
With page cache: ~30 ms
With static cache: ~10 ms
nach ersten tests konnte ich die werte grob bestätigen. mit dem static cache (in kombination mit dem browser-cache) sind die seiten extrem snappy. der trick ist, dass die gecachten seiten gar nicht mehr über php laufen, über die webserver-konfiguration werden cache-dateien direkt aufegrufen wenn sie generiert wurden.
das funktioniert für alle seiten ganz gut, auch die siztemap.xml oder die rückseite, aber weder mit dem alten file cache noch dem static cache ist es mir gelungen paginierte seiten zu cachen. das betrifft artikel-, tag-, kategorie- und archiv-seiten. da gibt’s noch ein bisschen arbeit.
andere caching anpassungen
beim caching der beilagen seiten hatte ich auch schonmal einen expliziten file-cache gebaut. der ging aber mit der umstellung auf static cache kaputt. aber immerhin kann man mehrere caches in der config.php parallel definieren:
'cache' => [
'pages' => [
'active' => true,
'type' => 'static',
'ignore' => fn ($page) => match (true) {
str_contains($page->uri(), '/rivva') => true,
default => false
}
],
'beilage' => [
'type' => 'file',
'root' => __DIR__ . '/../cache/beilage'
]
],
so richtig zufrieden bin ich noch nicht mit dem beilagen-caching, die seiten sind ja quasi dynamisch und werden deshalb vom static cache ausgeschlossen.
aber was mittlerweile wirklich spass macht: auf einer artikelseite j oder k auf der tastatur drücken und in windeseile zum vorherigen oder nächsten artikel gelangen. das geht auch deshalb snappy, weil ich auf den artikel seiten drei prefetches in den header gesetzt habe:
<link rel="prefetch" href="https://wirres.net/articles/ipompidou/beilage" as="document">
<link rel="prefetch" href="https://wirres.net/articles/fruh-und-spatspaziergang-am-20-6-2025" as="document">
<link rel="prefetch" href="https://wirres.net/articles/morgenspaziergang-vom-19-6-2025" as="document">
kommentare
auf der beilagen-seite (beispiel) können jetzt kommentare abgegeben werden. alles mit maurice renks komments-plugin umgesetzt. die konfiguration war initial etwas fummelig, unter anderem hätte ich auf mehrsprachigkeit umschalten sollen um die platzhalter und formular-bezeichnungen über die config.php anzupassen zu können. das hab ich auch mal kurz gemacht und gestaunt, was dabei alles kaputt geht. also snippet aus dem plugin in ein eigenes verzeichnis kopieren und dort anpassen. CSS war auch noch etwas fummelig, funktioniert aber soweit.
mit hilfe von chatgpt war danach der kommentaromat eine sache von 10 minuten. auch das css hat es auf nachfrage sehr gut hinbekommen.
wie man die freischaltung der kommenatre über eine moderationsschleife deaktiviert habe ich noch nicht herausgefunden, aber das kommt auch noch. bis dahin: moderieren.