feat: flyt sitet fra Astro til Zola

Samme indhold, URL'er og udseende, bygget af en enkelt zola-binær og Tailwind
standalone-CLI uden Node. Kanonisk domæne er asger.weirsoe.dk.

Blogindlæg ligger som page bundles med frontmatter Zola forstår, så de gamle
stempler er ugyldige, indtil scripts/omstempl.py er kørt med PUBLISH_KEY.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
Asger Geel Weirsøe
2026-11-01 16:47:08 +01:00
co-authored by Claude Opus 5.5
parent 7e13068dd2
commit e58a11c2b4
159 changed files with 8031 additions and 3574 deletions
+24
View File
@@ -0,0 +1,24 @@
// Håndskrevet service worker: precacher sitet, så det virker offline.
// postbuild.py sætter version og URL-liste ind. Alt der ikke er precachet, går til netværket.
const CACHE = 'pw-__VERSION__';
const URLS = __URLS__;
const known = new Set(URLS);
self.addEventListener('install', (e) => {
e.waitUntil(caches.open(CACHE).then((c) => c.addAll(URLS)).then(() => self.skipWaiting()));
});
// Rydder forrige version, også de gamle workbox-caches.
self.addEventListener('activate', (e) => {
e.waitUntil(caches.keys()
.then((keys) => Promise.all(keys.filter((k) => k !== CACHE).map((k) => caches.delete(k))))
.then(() => self.clients.claim()));
});
self.addEventListener('fetch', (e) => {
const url = new URL(e.request.url);
if (e.request.method !== 'GET' || url.origin !== location.origin) return;
const p = url.pathname;
const key = [p, p.replace(/\/?$/, '/index.html')].find((k) => known.has(k));
if (key) e.respondWith(caches.match(key).then((r) => r || fetch(e.request)));
});