10 Commits
Author SHA1 Message Date
Asger Geel Weirsøe 8d6183f689 Fjern ubl-tools og profilopslaget fra sitet
Build & Deploy / deploy (push) Successful in 54s
Claude-Session: https://claude.ai/code/session_01GGe7kUhooMFuzY6GaDb2w9
2026-11-09 16:05:08 +01:00
Asger Geel Weirsøe dcad720d64 Fjern opslagssiden
Build & Deploy / deploy (push) Successful in 17s
Claude-Session: https://claude.ai/code/session_01GGe7kUhooMFuzY6GaDb2w9
2026-11-06 22:42:10 +01:00
Asger Geel WeirsøeandClaude Opus 5.5 6d5a903247 fix: mobiloverløb, stak-tekster og mermaid væk
Tabeller ruller nu inden i sig selv, så siden ikke bliver bredere end skærmen ved
390 px. Kodeblokke og tabeller kan igen nås med tastatur. Kolofon, uses, humans.txt
og banner beskriver den nye stak. Mermaid er fjernet, da intet indlæg bruger det.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-01 16:47:09 +01:00
Asger Geel WeirsøeandClaude Opus 5.5 3844221421 fix: overskrift-id uden afsluttende bindestreg, som på den gamle side
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 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