No description
  • HTML 38.2%
  • SCSS 36.1%
  • Nix 19.3%
  • Ruby 2.4%
  • JavaScript 2.1%
  • Other 1.9%
Find a file
Repository files (latest commit first)
Filename Latest commit message Latest commit date
Pim Kunis 319dce34c9 Modernise toolchain and refresh theme
The flake was pinned to nixpkgs from April 2024, which held the build on
Ruby 3.1.4 (EOL since March 2025) and Jekyll 4.1.1 (2020).

Toolchain:
  - Ruby 3.1.4 -> 3.4.9, Jekyll 4.1.1 -> 4.4.1, Rouge 3.30 -> 4.7
  - sassc/libsass (EOL 2020) -> sass-embedded (dart-sass)
  - commonmarker 0.17.13 (2019) -> kramdown 2.5.2 + GFM

jekyll-commonmark-ghpages had to go: from 0.2.0 on it requires Jekyll 3.x,
since it targets GitHub Pages, which is frozen on 3.9. Plain jekyll-commonmark
drops syntax highlighting, so this moves to kramdown, Jekyll's built-in engine,
removing the third-party markdown gem entirely. hard_wrap is off to keep
CommonMark's newline handling, and the two <details> blocks are marked
markdown="1" since kramdown does not parse markdown inside raw HTML by default.
All pages verified to render identical text before and after.

nixpkgs patches sass-embedded to use its own dart-sass, but dropping the
download task also drops the side effect that created ARCHDIR, so the build
fails writing cli.rb. flake.nix carries a gemConfig override for this.

Theme:
  - The stylesheet asked for Roboto but never loaded it, so every visitor got
    fallback Arial. Use a system-ui stack instead.
  - Colours are CSS custom properties, collapsing the parallel dark stylesheet
    from 253 lines to 15. Theme resolves before first paint and follows the OS
    preference; @import -> @use, so the build is warning-free under dart-sass.
  - Drop Font Awesome (~1MB of webfonts plus 100KB of CSS) for a single icon,
    replaced by a masked inline SVG that keeps existing post markup working.
  - Theme toggle is a real button, so it is keyboard reachable. Transitions are
    scoped rather than applied to every element, and honour prefers-reduced-motion.
  - Remove dead metadata: empty twitter/fb tags, the theme's own name in the app
    metadata, an unreferenced disqus.js, and the unused tweet block.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-25 19:40:11 +02:00
src Modernise toolchain and refresh theme 2026-09-25 19:40:11 +02:00
.envrc Create nix shell 2025-01-12 13:02:40 +01:00
.gitignore Improve about page 2024-04-30 13:12:09 +02:00
flake.lock Modernise toolchain and refresh theme 2026-09-25 19:40:11 +02:00
flake.nix Modernise toolchain and refresh theme 2026-09-25 19:40:11 +02:00
patch-feed-date.py Add derivation for static website 2024-04-26 11:48:32 +02:00
README.md Create nix shell 2025-01-12 13:02:40 +01:00

Blog

$ cd src
$ jekyll serve