Commit Graph
47 Commits
Author SHA1 Message Date
Asger Geel Weirsøe 6b0cf3483a seo: peg tilbage på GitHub i footer og sameAs
Build & Deploy / deploy (push) Successful in 2m26s
GitHub-profilen linker til asger.weirsøe.dk med rel="me", men sitet pegede
ikke tilbage — så rel="me"-parringen var kun halv, og GitHub manglede i
Person.sameAs. Begge dele er entitetssignaler, ikke autoritet: linket på
GitHub er nofollow, så det her flytter ikke rankings, det knytter bare
profilen til personen.

Claude-Session: https://claude.ai/code/session_0198n4owY35jQpwht1wCGzfh
2026-09-10 20:22:00 +02:00
Asger Geel Weirsøe fc7ca339a1 seo: én kanonisk URL-form — uden afsluttende skråstreg
Build & Deploy / deploy (push) Successful in 1m43s
Google kendte 41 af sitemapets 44 URL'er som "Webadressen er ikke kendt af
Google". Årsagen var at siden fandtes i to former: de interne links peger alle
på no-slash (/blog, /cv, /tags/proxmox), mens sitemap og <link rel="canonical">
brugte skråstreg-formen. Origin serverer begge med 200 uden redirect, så
Googles linkbaserede opdagelse ramte kun det ene sæt, og sitemapets sæt blev
aldrig opdaget.

Nu peger canonical, sitemap og RSS alle på no-slash-formen, som de interne
links i forvejen brugte. lastmod slås stadig op på Astros egne ruter (som har
skråstregen) FØR URL'en strippes, så sitemapets 44 lastmod-datoer er uændrede.

Claude-Session: https://claude.ai/code/session_0198n4owY35jQpwht1wCGzfh
2026-09-10 20:15:00 +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
Asger Geel Weirsøe 6c2c7588f8 content(profiler): mapping mod Nemhandelsregistret — alle 38 danske profiler + registerkategorier
Build & Deploy / deploy (push) Successful in 2m5s
Siden viste 12 af de OIOUBL-profiler man faktisk kan vælge i Nemhandelsregistrets
profil-dropdown. Nu er alle med, i registrets egen rækkefølge og under registrets egne
gruppenavne ("Profiler for: ..."), så man kan slå direkte op mellem det man tilmelder sig
og hvilke dokumenttyper der så ligger i pakken.

- EProfile får valgfri `kategori` = registrets gruppeoverskrift; ny `kategorier`-eksport.
- 26 nye danske profiler: hele Catalogue-familien (CatBas/CatSim/CatExt/CatAdv/CatPriUpd
  + R-varianter), PayBas/PayBasR (Statement), OrdSel- og OrdAdv-varianterne,
  Reference-UtilityR, TecRes, NES1/2/7/8 og cenbii bii30 (DespatchAdvice).
- Registerprofilerne OrdRes-1.0 og BilSimReminderOnly-1.0 er med, mærket som "single"
  og henvist til registret — de står ikke i G26 v1.3.
- Dokumentlisterne er rettet til efter G26 v1.3 tabel 1-3: BilSim manglede
  ApplicationResponse (kun ved afvisning), OrdAdv-BilSim manglede OrderResponseSimple.
  "*" markerer nu at ApplicationResponse i ordreprofilerne kun bruges til afvisning.
- UI: registerkategori vises som badge og som egen filterrække (AND med standard-filteret),
  og indgår i fritekstsøgningen.

Claude-Session: https://claude.ai/code/session_018oXJWTRxTYdcV9Kw6M7e5J
2026-08-07 18:47:00 +02:00
Asger Geel Weirsøe 4ff1157978 feat(nemhandel): live Peppol-netværks-kort — slår CVR op i Peppol Directory (/api/peppol/smp) og viser modtagne dokumenttyper
Build & Deploy / deploy (push) Successful in 1m50s
2026-06-16 23:13:46 +02:00
Asger Geel Weirsøe e67045b2bf feat(ubl): UBL-profil-detektor + identifikator-afkoder (/ubl, client-side) + /profiler ?q=-prefill + ⌘K
Build & Deploy / deploy (push) Successful in 2m9s
2026-06-16 19:20:40 +02:00
Asger Geel Weirsøe b6aca5e245 content(profiler): fjern konkurrent-referencer (Sproom) — vendor-neutrale bemærkninger + kilder
Build & Deploy / deploy (push) Successful in 2m41s
2026-06-16 19:05:13 +02:00
Asger Geel Weirsøe f8b607c772 fix(profiler): verificér mod officielle kilder — kildelink pr. række, EU PINT v1.0.1, BIS 4.0 ikke-udgivet-status
Build & Deploy / deploy (push) Successful in 1m40s
2026-06-16 16:26:56 +02:00
Asger Geel Weirsøe c98167a3b4 fix(profiler): danske bogstaver (æøå) i profil-prosa — tekniske id/URN urørt
Build & Deploy / deploy (push) Successful in 1m48s
2026-06-15 18:41:15 +02:00
Asger Geel Weirsøe 0da4aec8b9 fix(header): skjul tekst-nav paa mobil (palette/lup = mobil-nav) — retter vandret overloeb
Build & Deploy / deploy (push) Successful in 1m59s
2026-06-15 18:29:16 +02:00
Asger Geel Weirsøe d51ecf61da feat(palette): synlig søge-/⌘K-knap i header (mobil-adgang til paletten + alle sider/værktøjer)
Build & Deploy / deploy (push) Successful in 1m39s
2026-06-15 18:23:58 +02:00
Asger Geel Weirsøe a4531482d1 feat(profiler): søgbart opslagsværktøj over Nemhandel OIOUBL + Peppol BIS/PINT-profiler (/profiler) + ⌘K-entry
Build & Deploy / deploy (push) Successful in 1m45s
2026-06-15 16:28:38 +02:00
Asger Geel Weirsøe 72ac103d63 feat(theme): adopt shared weirsoe-theme via submodule + Tailwind token adapter — dedupe tokens/toggle/prose/glow, keep Tailwind layer
Build & Deploy / deploy (push) Successful in 1m52s
2026-06-15 13:44:34 +02:00
Asger Geel Weirsøe da43c1bdc0 feat(analytics): enhedsmodel-kohorte som Matomo custom dimension (2) 2026-06-15 13:44:34 +02:00
Asger Geel Weirsøe 2b8e0506d9 blog: omskriv velkomst i flow-stil + forklar bagdaterede indlaeg
Build & Deploy / deploy (push) Successful in 2m22s
2026-06-13 09:56:17 +02:00
Asger Geel WeirsøeandClaude Opus 4.8 b9b0f50003 blog: er mit homelab egentlig opdateret?
Build & Deploy / deploy (push) Successful in 2m12s
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-13 08:15:57 +02:00
Asger Geel WeirsøeandClaude Opus 4.8 625b1eb9a9 css: responsive tabeller på blog (scroll i egen kolonne, ikke hele siden) + bryd lange ord
Build & Deploy / deploy (push) Successful in 1m42s
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-12 18:05:00 +02:00
Asger Geel WeirsøeandClaude Opus 4.8 3d1e45c86c cookies: popup-banner (implicit samtykke, huskes i localStorage) + /cookies-side + footer-link
Build & Deploy / deploy (push) Successful in 1m53s
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-12 17:52:00 +02:00
Asger Geel WeirsøeandClaude Opus 4.8 ad42b9c7a0 analytics: visitor-cookie levetid 1 år (setVisitorCookieTimeout)
Build & Deploy / deploy (push) Successful in 2m4s
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-12 17:38:00 +02:00
Asger Geel WeirsøeandClaude Opus 4.8 e10815f3d7 analytics: læg Matomo-snippet (site 2) direkte i Astro-head — minify dropper </head> som NPMplus-injektionen afhang af
Build & Deploy / deploy (push) Successful in 1m59s
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-12 17:24:00 +02:00
Asger Geel WeirsøeandClaude Opus 4.8 898c37634b nemhandel: omdøb CVR-opslag fra Peppol til NemHandel-opslag (ny rute /nemhandel + /api/nemhandel, redirect fra /peppol)
Build & Deploy / deploy (push) Successful in 2m5s
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-12 17:12:00 +02:00
Asger Geel WeirsøeandClaude Opus 4.8 24492fae93 chat: linkificér svar (escape-then-link) + ret kontakt-email til asger@weirsoe.dk overalt
Build & Deploy / deploy (push) Successful in 2m9s
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-12 17:06:00 +02:00
Asger Geel WeirsøeandClaude Opus 4.8 1aa918c13d forside: Mere end et CV — links til peppol/chat/status/now + palette-hint
Build & Deploy / deploy (push) Successful in 2m5s
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-11 21:59:59 +02:00
Asger Geel WeirsøeandClaude Opus 4.8 f4685a87f8 side: /chat — spoerg-mit-cv AI (frontend; backend /api/chat)
Build & Deploy / deploy (push) Successful in 1m42s
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-11 21:59:57 +02:00
Asger Geel WeirsøeandClaude Opus 4.8 8f7741db20 side: /status — live homelab-status (embed af self-hosted uptime kuma)
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-11 21:59:55 +02:00
Asger Geel WeirsøeandClaude Opus 4.8 c21974a3ce side: /now m. git-aktivitets-heatmap fra egen Gitea (build-time)
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-11 21:59:51 +02:00
Asger Geel WeirsøeandClaude Opus 4.8 02dacf32da vaerktoej: /peppol — slaa CVR op i NemHandel/Peppol (profilpakker)
Build & Deploy / deploy (push) Successful in 1m30s
Frontend til det offentlige opslags-API. Viser registreringsstatus, netvaerk og profilpakker for et CVR.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-11 21:59:50 +02:00
Asger Geel WeirsøeandClaude Opus 4.8 6bbdcf56d3 cv: ascii-cv som /cv.txt (til curl-folket)
Build & Deploy / deploy (push) Successful in 1m29s
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-11 21:59:30 +02:00
Asger Geel WeirsøeandClaude Opus 4.8 4dfb8a6865 footer: lille badge (statisk, ingen frameworks, offline)
Build & Deploy / deploy (push) Successful in 1m40s
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-11 21:59:00 +02:00
Asger Geel WeirsøeandClaude Opus 4.8 0f9667252d egg: konami-kode + ascii-hilsen til view-source-folket
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-11 21:58:10 +02:00
Asger Geel WeirsøeandClaude Opus 4.8 428df33cf5 blog: kopier-knap paa kodeblokke
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-11 21:57:20 +02:00
Asger Geel WeirsøeandClaude Opus 4.8 54fc09ca0e tema: terminal (groen monospace) som tredje tema via paletten
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-11 21:56:30 +02:00
Asger Geel WeirsøeandClaude Opus 4.8 006da016cd ui: command palette (Cmd/Ctrl+K) m. build-time soegeindeks, vanilla JS
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-11 21:55:40 +02:00
Asger Geel WeirsøeandClaude Opus 4.8 b0ffaa5973 sider: /uses + /colophon (stak og homelab) + footer-links
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-11 21:54:50 +02:00
Asger Geel WeirsøeandClaude Opus 4.8 8d7d88e238 meta: security.txt (RFC 9116) + humans.txt
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-11 21:54:00 +02:00
Asger Geel WeirsøeandClaude Opus 4.8 cae3402d73 pwa: service worker for offline + installerbar (vite-pwa, autoUpdate)
Build & Deploy / deploy (push) Successful in 1m32s
@vite-pwa/astro genererer en Workbox-SW der precacher alt (59 entries); autoUpdate + skipWaiting + cleanupOutdatedCaches saa redeploy aldrig strander en bruger paa gammel version. Registrering injiceret via /registerSW.js i Base.astro (manifest:false bruger den eksisterende site.webmanifest). Offline-brug + Add-to-Home-Screen.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-11 21:53:00 +02:00
Asger Geel WeirsøeandClaude Opus 4.8 d8bfff1cc4 seo: BreadcrumbList + CollectionPage + wordCount, web-manifest/ikoner, FAQ i foerste person
Build & Deploy / deploy (push) Successful in 1m20s
BreadcrumbList paa blogposts (schema + synlig broedkrumme) og CollectionPage paa /blog (hoejeste-ROI rich results). BlogPosting beriget m. wordCount + articleSection. Web-manifest + apple-touch-icon/192/512 PNG-ikoner. FAQ-svar i foerste person (spoergsmaal beholdt i 3. person m. navn for SEO).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-11 21:50:00 +02:00
Asger Geel WeirsøeandClaude Opus 4.8 3ed486b775 indhold: ret ERST/CGI-fakta, ansat ikke raadgiver, faerre tankestreger
Build & Deploy / deploy (push) Successful in 1m52s
ERST ejer open source eDelivery (Oxalis); CGI var leverandoer paa NemHandel. Fuldtidsansat TSA hos Digisense (ikke ekstern raadgiver). Fjernet em-streger i synlig tekst + llms.txt for mindre AI-praeg.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-11 21:35:22 +02:00
Asger Geel WeirsøeandClaude Opus 4.8 e5566108f2 head: tilfoej usynligt rel=me link til Mastodon-verifikation
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-11 20:43:07 +02:00
Asger Geel WeirsøeandClaude Opus 4.8 ebb1e66ad9 SEO/GEO: datalog-keyword, entitets-schema, FAQ, Mastodon, llms.txt
ProfilePage+FAQPage JSON-LD, Mastodon i sameAs/footer (rel=me), rigere llms.txt, selvsikker forretning+teknik-tone paa forside/CV, datalog foerst i title/desc.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-11 20:31:00 +02:00
Asger Geel WeirsøeandClaude Opus 4.8 86d4fbf81c ci: deploy via tar over SSH with atomic swap (runner has no rsync)
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-11 19:19:08 +02:00
Asger Geel WeirsøeandClaude Opus 4.8 7e583af822 ci: force-install sharp linux-x64 binary, clear omit env, verify load
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-11 19:17:43 +02:00
Asger Geel WeirsøeandClaude Opus 4.8 7cce714940 ci: npm install --include=optional so Sharp platform binary installs
The runner omits optional deps, dropping @img/sharp-linux-x64 (sharps own
optional platform package). --include=optional forces it back in.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-11 19:17:06 +02:00
Asger Geel WeirsøeandClaude Opus 4.8 deb5d48c68 deps: add sharp as a direct dependency
Sharp is only an optional dep of astro; the CI runner omits optional deps,
so astro:assets image optimization failed with MissingSharp. Pinning it as
a direct dependency guarantees the native binary is installed.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-11 19:16:36 +02:00
Asger Geel WeirsøeandClaude Opus 4.8 f5850bd0c3 ci: build with npm + Node 22 so Sharp installs (fixes bun segfault + missing-sharp)
bun --bun crashed Bun runtime (SIGILL); plain bun run hit missing Sharp
native binary for astro:assets. npm install pulls @img/sharp-linux-x64
reliably.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-11 19:15:58 +02:00
Asger Geel WeirsøeandClaude Opus 4.8 adbe2e76d7 ci: force bun runtime in build step (--bun) so build is independent of runner Node version
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-11 19:14:09 +02:00
Asger Geel WeirsøeandClaude Opus 4.8 80c820bdff site: full Astro source + blog posts, Gitea Actions deploy to CT148
Replaces the placeholder repo with the asger.weirsoe.dk site source.
Adds 6 blog posts (Proxmox, Authentik/OIDC, NPMplus migration, JS injection,
ah-fail) and .gitea/workflows/deploy.yml (bun build + rsync over SSH).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-11 19:13:47 +02:00