Commit graph

59 commits

Author SHA1 Message Date
4485f3ef1e fix(a11y): accessible names for icon links and the copy button
- aria-labels on share links, sidebar social links and mobile nav icons
- aria-current on active nav links
- CopyButton: React state instead of innerHTML mutation, clipboard error
  handling, accessible label and a polite live region for feedback

(Related code-block and image-caption a11y fixes landed with the
ImageWrapper/CodeWrapper rewrite in the previous perf commit.)
2026-10-19 14:23:16 +02:00
64ae30b545 feat(seo): sitemap, robots, canonical URLs, OG images and JSON-LD
- Add sitemap.ts and robots.ts
- pageMetadata() helper: consistent title, canonical URL, Open Graph,
  Twitter card and feed alternate on every page
- Generated OG images: a site card, and per post either the cover image
  or a branded title card (pre-rendered at build)
- BlogPosting JSON-LD on post pages
- Fail fast with a clear error when SITE_URL is missing

Content loading:
- Validate post frontmatter at build time and normalize dates to ISO
  (fixes invalid <time datetime> values)
- Add draft: true support (drafts only render in development)
- Cache markdown rendering so metadata and page share one render
- Replace the three copy-pasted about/projects/setup pages with a shared
  MarkdownPage component
2026-10-19 14:22:40 +02:00
88c8676d3f perf: image loading, smaller assets, server-rendered code blocks
- Only preload the post cover and latest-post image instead of every image
- Drop in-post image quality from 100 to 90 and add responsive sizes
- Downscale 2940px screenshots to 1800px; convert linkboard-old to WebP
  (3.1 MB -> 60 KB)
- Make CodeWrapper a server component; only CopyButton ships to the client
- Pin the Mermaid CDN script to an exact version for reproducible builds
2026-10-19 14:17:18 +02:00
4301e50ab3 fix: tag/category routes, recently updated list, feed and no-js flash
- Slugify tag/category static params so pre-rendered pages match links;
  disable dynamic params and return a real 404 via notFound()
- Drop bogus generateStaticParams from the tags/categories index pages
- Add a styled not-found page
- Sort 'Recently updated' by last modification before slicing
- Atom feed: correct rel=self URL, use updated dates, valid content type
- Swap no-js -> js class in an inline head script before first paint
- Markdown links: only route internal paths through next/link and
  tolerate missing hrefs
2026-10-19 14:15:57 +02:00
ccaa7b6871 fix(posts/page): fix OG cover image path 2026-09-18 13:10:48 +02:00
22a8748d48 edit(tessera): add new cover 2026-09-18 12:59:19 +02:00
f90a0091fd edit(tessera): add new cover 2026-09-18 12:41:31 +02:00
df90343f6d edit(tessera): paragraph added 2026-09-18 12:30:28 +02:00
4427268fce edit(projects): add tessera 2026-09-18 12:21:36 +02:00
29d8e6a35d post(tessera): new post 2026-09-18 12:21:20 +02:00
69eb430a0e edit(vigilare): category 2026-09-18 12:15:02 +02:00
HangerThem
538fa7fd57 Added Seafile to setup 2026-08-26 16:44:35 +02:00
0b65e8b831 Projects subpage 2026-08-23 12:34:01 +02:00
d5f94a3f29 Added new setup items 2026-08-14 20:44:53 +02:00
c61bcd3a41 Fixes for few tags and categories pages 2026-08-05 11:54:39 +02:00
77b1916df1 Dev env check for description length 2026-08-04 14:56:24 +02:00
043d3f7d76 Better heading styling 2026-08-04 14:52:00 +02:00
f120dfbc4d Fixed image taking whole page on post page 2026-08-04 14:47:00 +02:00
4b84b65d76 Fixed incorrect cover image display for mobile 2026-08-04 14:29:52 +02:00
fa527aeddb Fixed showing cover image for latest post even if it does not exist 2026-08-04 11:51:11 +02:00
ba4e2dbd27 A bit of styling for in-between post navigation 2026-08-04 11:48:08 +02:00
729d3ae611 Better post navigation 2026-08-04 11:45:46 +02:00
cbb148d0af Fixed KaTeX in Standard model 2026-08-04 11:40:36 +02:00
4ca08fe208 Restored original posts 2026-08-04 11:35:17 +02:00
ce420c3205 Made external link icon optional 2026-08-04 10:46:06 +02:00
0fc2737a00 Split WM to separate section in setup 2026-08-04 10:41:40 +02:00
a771755907 Fixed external link icon 2026-08-04 10:39:52 +02:00
7b0ab11425 Setup page added 2026-08-04 10:37:15 +02:00
25a9cbda8f Favicon and tags/categories pages fix 2026-08-04 09:51:06 +02:00
1078ed016f Fixed incorrect width of ToC 2026-08-04 09:13:40 +02:00
180cdd4edc Fixed incorrect sizing of nav icons 2026-08-04 09:11:35 +02:00
1a5ea2f6c0 Fixed few SSG issues and cleanedup about me 2026-08-04 08:52:50 +02:00
ff553187db Added about page 2026-08-04 08:21:11 +02:00
9b5fee37e2 Added tag pages 2026-08-04 08:06:05 +02:00
f3f351bbbc Fixed formatting 2026-08-04 07:46:51 +02:00
HangerThem
fa6c205838 Post meta line fix on mobile 2026-08-03 20:49:41 +02:00
HangerThem
6968646702 Fixed katex rendering on mobile 2026-08-03 20:41:16 +02:00
HangerThem
e3f9b53451 Fix puppeteer 2026-08-03 20:00:40 +02:00
HangerThem
ddd6b5597b Moving back 2026-08-03 19:37:23 +02:00
HangerThem
cb960e268a Maybe? 2026-08-03 18:15:21 +02:00
HangerThem
ee48b991e1 Hopefully finally correct pass through for git info 2026-08-03 18:10:01 +02:00
HangerThem
2c660bae02 Maybe made the commit info work in prod? 2026-08-03 17:54:08 +02:00
HangerThem
3941d77d10 Added git to nixpacks.toml fix 2026-08-03 17:44:07 +02:00
HangerThem
22f4f442fc Added git to nixpacks.toml 2026-08-03 17:43:12 +02:00
HangerThem
b8909cf9ce Added commit tracker/link to sidebar 2026-08-03 17:34:05 +02:00
HangerThem
9a2d25ed11 Fixing pathing of imports 2026-08-03 16:45:16 +02:00
HangerThem
5df72c7ac2 Restructure of components 2026-08-03 16:35:58 +02:00
HangerThem
8ac4a85010 Revert back to state before deploy testing 2026-08-03 16:32:53 +02:00
HangerThem
f762a88d95 Testing webhook deploy 2026-08-03 16:25:35 +02:00
HangerThem
2e48ad1ba2 Try and fix the og image pointing to localhost 2026-08-03 16:18:58 +02:00