This is the fourth incarnation of a pretty simple idea: make it easy to write things that I might want to refer to later.
My previous website used a publishing engine that I wrote myself, driven by a dissatisfaction with the state of the art at the time1. My favourite conceit, which I miss terribly, was that post timestamps used the time zone from which I was writing, which was great for travelogs.
On the server it was mostly static with the exception of the main and series indexes, which supported pagination with ranges. I wrote in raw HTML; posts included all the markup inside the
<article>. I liked the control, but ultimately the friction won and when life changed in 2014 I couldn’t find the activation energy required to write for the web anymore. I was tired of typing
Which is too bad, because by then the web had changed dramatically without me noticing. See, I’m not a “web person”. I work on system frameworks, languages, and firmwares; my most-trafficked website started life in the 90s and still uses tables for layout. Writing my own engine felt necessary in the mid-oughts, but a decade later I was finding it exhausting. I just wanted to write in Markdown.
Which is what I’m doing now. This site is generated by Jekyll, it’s hosted on Netlify, the content lives on GitHub, and it depends on dozens of packages with contributions from hundreds of people. The website is about as far from “my own shell scripts and PHP code hosted on my own debian server” as you can get. I still miss the way pagination was implemented on my old site—only because I thought it philosophically important2—but the experience of writing (and probably reading) is categorically better.
Discrete things I’ve written (or at least adapted) in the making of this site include:
- Sidebar/popover footnotes3.
- Abbrs use popovers, similar to footnotes
- Labels on external links
- Repository of CSS files for syntax highlighting
- Plugin for generating graphviz SVGs from DOT
- Plugin for making git metadata available to liquid (not quite ready to share yet)
In this new world of dependencies, I want to stay on top of updates without adopting any changes that break the site horribly. A combination of deploy previews with an auto-merge GitHub action strikes a reasonable compromise until such a time as accelerationism wins the day.
Oh no, a TODO list
The more immediate things I’d like to get done are tracked in the GitHub Issues for this site’s repo, but broadly there are some other things I’d like to explore as time allows:
- I’d like to publish some pages that use Tangle. I’ll probably start by onshoring some online “calculators” that I find myself visiting often, like Sheldon Brown’s gear calculator but it would be really interesting to make a carbon footprint calculator that takes into account the cost of producing and transporting fuel
- Webmentions? Apparently one can get them working on static sites? The cool kids seem to be moving in an ActivityPub direction.
- Collections (and collection indexes)? Or should that be tags? Does any of it really matter if we’re gardening?
- mathjax support
This was before Markdown had become ubiquitous, most blogs (including my next oldest) were Wordpress, and “smart” interactive editors were starting to take over. ↩
Basically, pages infinite-scrolled by XHRing the next page and appending its
<article>s to the current page. More importantly, it updated the browser’s address bar so reloading the page would cause all the currently visible content to be part of the first request, preserving the reader’s scroll location. ↩