Commit Graph

913 Commits

Author SHA1 Message Date
svemagie
ce4ff57319 fix: smaller profile pic 2026-03-17 08:43:34 +01:00
svemagie
1c027e7581 create like post 2026-03-17 08:29:19 +01:00
svemagie
07369d9687 fix(ai): remove unused kebab-case ai-text-level/ai-code-level fallbacks
The kebab-case keys were never reachable from Nunjucks templates anyway;
camelCase and snake_case cover all actual frontmatter variants.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-17 08:00:24 +01:00
svemagie
63b1c0bca6 fix(design): add whitespace 2026-03-17 07:54:44 +01:00
svemagie
ca8362d1ee fix(blog): move tags and garden badge inline with Planted date
Tended date now appears on its own line below, matching the desired
layout: Planted + tags + badge on line 1, Tended on line 2.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-17 07:48:27 +01:00
svemagie
52b453a5b5 feat(blog): add Planted/Tended date labels to post template
Show "Planted:" before publish date and "Tended:" with the updated date
when posts have an `updated` front matter field. Also updates JSON-LD
dateModified to use the updated date when available.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-17 07:37:17 +01:00
svemagie
96121a818a update article post 2026-03-17 07:26:25 +01:00
svemagie
f0532f53bd update article post 2026-03-16 22:43:18 +01:00
svemagie
35d02a80ae fix(blog): remove AI disclosure badge from blog listing cards 2026-03-16 22:41:06 +01:00
svemagie
382cc2cdc6 docs: add README.md and CLAUDE.md for svemagie/blog
Replaces the deleted upstream docs with svemagie-specific documentation.

README.md — human-readable setup guide: stack, local dev, env vars,
content structure, custom systems, deploy, repo layout, and upstream
relationship.

CLAUDE.md — AI working context: architecture, key custom systems
(garden, AI disclosure, nested tags, unfurl, OG), template gotchas
(garden-badge placement, blog.njk branch structure), deploy workflow,
common tasks, and a summary of divergence from the theme upstream.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-16 22:35:29 +01:00
svemagie
1c78056acf Merge branch 'main' of github.com:svemagie/blog 2026-03-16 22:30:06 +01:00
svemagie
0dea517d16 fix(blog): remove stray garden-badge includes from card footer and pagination
Three misplaced `{% include "components/garden-badge.njk" %}` calls were
rendering duplicate badges outside the post-type branches:

- One after the AI disclosure block (appeared at the bottom of every
  article card, next to "Read more")
- Two inside the pagination <nav> (between Previous/Next links)

The badge is already correctly included once per post-type branch
(article, note, like, bookmark, repost, reply, photo).

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-16 22:28:59 +01:00
svemagie
99699baf1d update article post 2026-03-16 22:20:55 +01:00
svemagie
0aba19f8f7 update article post 2026-03-16 22:18:05 +01:00
svemagie
9c15d13550 update article post 2026-03-16 22:02:37 +01:00
svemagie
2e1256d277 update article post 2026-03-16 21:58:16 +01:00
svemagie
c7c1177634 create article post 2026-03-16 21:55:16 +01:00
svemagie
6a35fbccea delete reply post 2026-03-16 21:44:19 +01:00
svemagie
53eb29c509 delete photo post 2026-03-16 21:42:41 +01:00
svemagie
99769a7818 create photo post 2026-03-16 21:42:24 +01:00
svemagie
b0b87d24c4 fix(deploy): exclude content/.indiekit/ from rsync --delete
This directory is managed by the node jail, not by the build. rsync
was trying to delete homepage.json (placed by the other jail) and
failing with permission denied.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-16 21:38:05 +01:00
svemagie
55884b83f2 fix(deploy): use rsync -rlz instead of -avz to avoid permission errors
The deploy user cannot set timestamps on the jail root directory.
Drop -a (which implies -t, -p, -o, -g) in favor of -rlz (recursive,
symlinks, compress) which is sufficient for deploying static files.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-16 21:35:58 +01:00
svemagie
7ebd3037e6 fix(deploy): switch from SCP to rsync --delete to remove stale files
SCP only copies files over, leaving deleted files on the server. rsync
with --delete compares source and destination, removing files that no
longer exist in the build output.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-16 21:27:39 +01:00
svemagie
eddbc3cbd9 delete photo post 2026-03-16 21:02:11 +01:00
svemagie
5984da2db3 delete article post 2026-03-16 20:59:22 +01:00
svemagie
f1775525d7 update photo post 2026-03-16 20:58:39 +01:00
svemagie
a09550fab7 update photo post 2026-03-16 20:53:03 +01:00
svemagie
ba31202cfc update photo post 2026-03-16 20:53:02 +01:00
svemagie
0b5b4d8020 upload photo file 2026-03-16 20:53:01 +01:00
svemagie
9d0aa4440d update article post 2026-03-16 20:49:36 +01:00
svemagie
5dd7d1cbe1 create article post 2026-03-16 20:45:07 +01:00
svemagie
b26d04030b create article post 2026-03-16 20:28:28 +01:00
svemagie
71823cbe47 delete note post 2026-03-16 13:21:14 +01:00
svemagie
8f7dbf0548 Merge branch 'main' of github.com:svemagie/blog 2026-03-16 11:21:27 +01:00
svemagie
07e81d37b0 env cleanup 2026-03-16 11:21:23 +01:00
svemagie
aaed5e70a1 Update cron schedule to run every 3 hours 2026-03-16 10:54:50 +01:00
svemagie
46d99170d4 fix(webmentions): rename h2 to Interactions and apply text-lg font-semibold style
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-16 01:04:45 +01:00
svemagie
571ecb6e40 fix(webmentions): filter out self-interactions from own Bluesky account
Exclude webmentions from svemagie.bsky.social / did:plc:g4utqyolpyb5zpwwodmm3hht
at both build-time (eleventy filter) and client-side (webmentions.js).

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-16 00:59:40 +01:00
svemagie
216073cf8f refactor(post): replace custom Interactions with Webmentions section, renamed to Interactions
Remove post-interactions.njk include and rename the Webmentions heading to "Interactions".

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-16 00:51:22 +01:00
svemagie
9be8abc49f update note post 2026-03-16 00:22:21 +01:00
svemagie
7819580a5c create note post 2026-03-16 00:19:53 +01:00
svemagie
9b8f4e7c8f create bookmark post 2026-03-16 00:16:10 +01:00
svemagie
56b9dfe26f update like post 2026-03-16 00:12:36 +01:00
svemagie
41999765cf fix(og): use cy-me2.webp as avatar for OG image generation
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-16 00:02:04 +01:00
svemagie
a166af2306 chore: sync upstream — performance, webmentions v2, OG v3
- _data: switch to cachedFetch wrapper (10s timeout + 4h watch cache)
- js/webmentions.js: owner reply threading, platform provenance badges, DOM dedup, Micropub reply support
- js/comments.js: owner detection, reply system, Alpine.store integration
- _includes/components/webmentions.njk: data-wm-* attrs, provenance badge slots, reply buttons
- _includes/components/comments.njk: owner-aware comment form, threaded replies
- widgets/toc.njk: Alpine.js tocScanner upgrade (replaces is-land/inline-JS)
- lib/og.js + og-cli.js: OG card v3 (light theme, avatar, batched spawn, DESIGN_VERSION=3)
- eleventy.config.js: hasOgImage cache, memoized date filters, batched OG/unfurl, post-build GC, YouTube check opt
- base.njk: Inter font preloads + toc-scanner.js script
- critical.css: font-face declarations (font-display:optional)
- tailwind.css: font-display swap→optional
- tailwind.config.js: prose link colors -700→-600
- Color design system: accent-700/300 → accent-600/400 across components

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-15 23:56:56 +01:00
svemagie
f2b05746d7 update like post 2026-03-15 23:53:20 +01:00
svemagie
a9fdfd92bc update like post 2026-03-15 23:52:50 +01:00
svemagie
28932a4e0e update like post 2026-03-15 23:37:01 +01:00
svemagie
0b47e44996 update like post 2026-03-15 23:35:19 +01:00
svemagie
ac4b62d43c chore: sync upstream — add toc-scanner.js and data-fetch.js
New files from rmdes/indiekit-eleventy-theme:
- js/toc-scanner.js: Alpine.js TOC scanner with IntersectionObserver scroll spy
- lib/data-fetch.js: shared fetch helper with 10s timeout and watch-mode cache extension

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-15 23:15:33 +01:00