Commit Graph
6 Commits
Author SHA1 Message Date
Asger Geel WeirsøeandClaude Opus 5.5 41e7dacae6 fix: spærren godtager kun præcis stempellinjen
canonical() fjernede enhver linje med godkendt: fra det signerede, og Zola kan lukke
frontmatter midt på en linje. Sammen gav det plads til ugodkendt tekst i et gyldigt
stemplet indlæg. Nu er kun den linje tjenesten skriver usigneret, og kun én gang.

Bruger runnerens python3 i stedet for setup-python, som kun har builds til Ubuntu.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-01 16:47:08 +01:00
Asger Geel WeirsøeandClaude Opus 5.5 e58a11c2b4 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>
2026-11-01 16:47:08 +01:00
Asger Geel Weirsøe 288205630e Ryd op i kommentarer
Build & Deploy / deploy (push) Successful in 5m55s
2026-10-31 14:43:20 +01:00
Asger Geel Weirsøe e294be18c7 Cover a post's images in its approval stamp
Build & Deploy / deploy (push) Successful in 5m51s
Images for a post live next to it in src/content/blog/<slug>/ and are
referenced as ./<slug>/file.png, so Astro optimises them and resolves the
path in the preview build as well. The stamp now also covers the sha256 of
every file in that folder: swapping or adding an image after approval fails
the build, and so does a folder without an approved post. Posts without
images keep their existing stamps.

Claude-Session: https://claude.ai/code/session_01JmhJG6JnhXfzNiKv8f2vHu
2026-10-09 19:45:23 +02:00
Asger Geel Weirsøe 2a18604b25 Require an approval stamp on every blog post before building
Build & Deploy / deploy (push) Successful in 3m9s
Posts are written in a private drafts repo and only reach this repo through
an approval step that stamps them with an HMAC over path and content. The
deploy workflow now runs scripts/verify-approvals.mjs before the build and
refuses to build if a post is unstamped, changed after approval, or still
marked as a draft (this repo is public, so a draft here is already published).

PW_PREVIEW=1 builds the site under /udkast for the private review page:
noindex, a banner, no service worker, sitemap or comments.

The nine existing posts are stamped as approved.

Claude-Session: https://claude.ai/code/session_01JmhJG6JnhXfzNiKv8f2vHu
2026-10-08 21:47:12 +02:00
Asger Geel Weirsøe 034e5e3312 seo: præcis sitemap-lastmod, IndexNow-ping ved deploy og favicon.ico
Build & Deploy / deploy (push) Successful in 2m19s
Fire ugers adgangslog (81k requests) viser at ægte Googlebot kun hentede robots.txt,
favicon og et par billeder — plus én enkelt HTML-side i hele perioden. Intet af det her
løser dét (kun indgående links gør), men det fjerner de undskyldninger vi selv havde
lagt ud.

- Sitemappet havde ingen lastmod overhovedet. Nu udleder astro.config.mjs den pr. side:
  statiske sider fra deres sidste commit, blogindlæg fra updated/date i frontmatter,
  og oversigts-/tagsider fra det nyeste indlæg de viser. Kan en dato ikke fastslås
  præcist, udelades lastmod helt — en forkert dato er værre end ingen, fordi Google
  holder op med at stole på feltet.
- Det kræver rigtig git-historik, så checkout kører nu fetch-depth: 0 (default shallow
  ville give alle filer samme dato).
- Nyt deploy-step pinger IndexNow med de sider dette push faktisk ændrede — udregnet af
  scripts/indexnow.mjs ud fra diffen, ikke hele sitemappet, da gentagne fuld-lister er
  støj. Nøglefilen lå allerede i public/, men blev aldrig brugt. Hjælper kun Bing/Yandex;
  Google understøtter ikke IndexNow. continue-on-error, så det aldrig vælter et deploy.
- /favicon.ico gav 404. Tilføjet som rigtig 3-størrelses ICO (16/32/48) genereret fra
  favicon.svg med samme baggrund som de øvrige ikoner.

Claude-Session: https://claude.ai/code/session_018oXJWTRxTYdcV9Kw6M7e5J
2026-08-09 09:15:38 +02:00