ch­an­ge­log 21.06.2025

felix schwenzel in über wirres

ich habe mich ent­schie­den mei­ne an­pas­sun­gen hier ein we­nig zu do­ku­men­tie­ren. ich lis­te die­se ch­an­ge­logs nicht auf der haupt­sei­te und im RSS feed, lin­ke aber ge­le­gent­lich aus der haupt­sei­te auf sie. ich ver­mu­te das in­ter­es­si­ert nicht so vie­le leu­te, was ich hier im ma­schi­nen­raum trei­be. ka­te­go­rie bleibt die gute alte über wir­res ka­te­go­rie und ver­schlag­wor­tet wer­den die ch­an­ge­logs na­tür­lich mit #ch­an­ge­log.


cache

der stan­dard­mäs­si­ge file cache von kir­by hat ei­gent­lich ganz gut funk­tio­niert. al­ler­dings lief wei­ter­hin al­les über php und da­mit ein biss­chen lag­gy. die uber­space hosts schei­nen mir nicht irre per­for­mant zu sein, so­wohl von der cpu-leis­tinmg als auch vom RAM. und wenn ich dann ge­le­gen­tich den me­dia-ord­ner mit den vor­ge­ne­rier­ten thum­nails lö­sche und die sei­ten neu ge­r­en­dert und ge­cached wer­den, merkt man schon wie die VM ins schwit­zen ge­rät und ge­le­gent­lich den PHP pro­zess killt.

je­den­falls bin ich drauf ge­kom­men als ich merk­te, dass die site­map.xml nicht ge­cached ist. die ge­ne­rie­rung ist eher auf­wän­dig und bots war­ten nicht ger­ne, bzw. soll­ten ei­gent­lich kei­ne über­flüs­si­ge last er­zeu­gen. die site­map liess sich ir­gend­wie nicht beim ers­ten ver­such mit dem fil­e­cache si­chern, wes­halb ich bei der wei­te­ren re­cher­che auf sta­tic­cache stiess.

This plug­in will give you the per­for­mance of a sta­tic site ge­ne­ra­tor for your re­gu­lar Kir­by in­stal­la­ti­ons. Wi­t­hout a huge set­up or com­plex de­ploy­ment steps, you can run your Kir­by site on any ser­ver – cheap shared hos­ting, VPS, you name it – and enable the sta­tic cache to get in­cre­di­ble speed on de­mand.

Rough bench­mark com­pa­ri­son for our Star­ter­kit home page:

Wi­t­hout page cache: ~70 ms
With page cache: ~30 ms
With sta­tic cache: ~10 ms

nach ers­ten tests konn­te ich die wer­te grob be­stä­ti­gen. mit dem sta­tic cache (in kom­bi­na­ti­on mit dem brow­ser-cache) sind die sei­ten ex­trem snap­py. der trick ist, dass die ge­cach­ten sei­ten gar nicht mehr über php lau­fen, über die web­ser­ver-kon­fi­gu­ra­ti­on wer­den cache-da­tei­en di­rekt auf­e­g­ru­fen wenn sie ge­ne­riert wur­den.

das funk­tio­niert für alle sei­ten ganz gut, auch die siz­te­map.xml oder die rück­sei­te, aber we­der mit dem al­ten file cache noch dem sta­tic cache ist es mir ge­lun­gen pa­gi­nier­te sei­ten zu cachen. das be­trifft ar­ti­kel-, tag-, ka­te­go­rie- und ar­chiv-sei­ten. da gibt’s noch ein biss­chen ar­beit.

an­de­re caching an­pas­sun­gen

beim caching der bei­la­gen sei­ten hat­te ich auch schon­mal ei­nen ex­pli­zi­ten file-cache ge­baut. der ging aber mit der um­stel­lung auf sta­tic cache ka­putt. aber im­mer­hin kann man meh­re­re caches in der con­fig.php par­al­lel de­fi­nie­ren:

    'cache' => [
      'pa­ge­s' => [
        'ac­ti­ve' => true,
        'ty­pe' => 'sta­tic',
        'i­gno­re' => fn ($page) => match (true) {
          str_con­ta­ins($page->uri(), '/riv­va') => true,
          de­fault => fal­se
        }
      ],
      'bei­la­ge' => [
        'ty­pe' => 'fi­le',
        'roo­t' => __DIR__ . '/../cache/bei­la­ge'
      ]
    ],

so rich­tig zu­frie­den bin ich noch nicht mit dem bei­la­gen-caching, die sei­ten sind ja qua­si dy­na­misch und wer­den des­halb vom sta­tic cache aus­ge­schlos­sen.
aber was mitt­ler­wei­le wirk­lich spass macht: auf ei­ner ar­ti­kel­sei­te j oder k auf der tas­ta­tur drü­cken und in win­des­ei­le zum vor­he­ri­gen oder nächs­ten ar­ti­kel ge­lan­gen. das geht auch des­halb snap­py, weil ich auf den ar­ti­kel sei­ten drei pre­fet­ches in den hea­der ge­setzt habe:

<link rel="pre­fetch" href="https://wir­res.net/ar­tic­les/ipom­pi­dou/bei­la­ge" as="do­cu­ment">
<link rel="pre­fetch" href="https://wir­res.net/ar­tic­les/fruh-und-spat­spa­zier­gang-am-20-6-2025" as="do­cu­ment">
<link rel="pre­fetch" href="https://wir­res.net/ar­tic­les/mor­gen­spa­zier­gang-vom-19-6-2025" as="do­cu­ment">

kom­men­ta­re

auf der bei­la­gen-sei­te (bei­spiel) kön­nen jetzt kom­men­ta­re ab­ge­ge­ben wer­den. al­les mit mau­rice renks komm­ents-plug­in um­ge­setzt. die kon­fi­gu­ra­ti­on war in­iti­al et­was fum­me­lig, un­ter an­de­rem hät­te ich auf mehr­spra­chig­keit um­schal­ten sol­len um die platz­hal­ter und for­mu­lar-be­zeich­nun­gen über die con­fig.php an­zu­pas­sen zu kön­nen. das hab ich auch mal kurz ge­macht und ge­staunt, was da­bei al­les ka­putt geht. also snip­pet aus dem plug­in in ein ei­ge­nes ver­zeich­nis ko­pie­ren und dort an­pas­sen. CSS war auch noch et­was fum­me­lig, funk­tio­niert aber so­weit.

mit hil­fe von chatgpt war da­nach der kom­men­t­aro­mat eine sa­che von 10 mi­nu­ten. auch das css hat es auf nach­fra­ge sehr gut hin­be­kom­men.

wie man die frei­schal­tung der kom­me­n­at­re über eine mo­de­ra­ti­ons­schlei­fe de­ak­ti­viert habe ich noch nicht her­aus­ge­fun­den, aber das kommt auch noch. bis da­hin: mo­de­rie­ren.