New Blog Setup
I've migrated this blog to a new setup. Here's how it works now:
Stack
- Lektor - Static site generator with a nice content model
- Pandoc - Builds my resume from YAML to HTML
- just - Command runner for build tasks
- GitHub Actions - Automatic deployment on push to main
- PureCSS - Lightweight CSS framework
How It Works
Content lives in YAML and Lektor's .lr files. The build process:
just resume- Pandoc convertssrc/resume.ymlto HTML using a custom templatelektor build- Lektor builds the rest of the site- GitHub Actions deploys to GitHub Pages on every push
Why Lektor?
I really enjoyed using GNU Guix and Haunt. Guix is a fantastic package manager with reproducible builds, and Haunt is a lovely Scheme-based static site generator. However, I wanted something that runs easily on macOS without needing a Linux VM or container.
More importantly, I wanted to focus on writing blog posts, not building and maintaining my own blogging system. Lektor has a clean content model, and just works out of the box.
PlantUML Diagrams
I wrote a small Lektor plugin that renders PlantUML diagrams directly in markdown. Just use a fenced code block with plantuml as the language:
The plugin encodes the diagram text and fetches the rendered SVG from the public PlantUML server at build time. The SVG is embedded inline, so no external requests are made when viewing the page.
The full source is on GitHub.