Weeknotes 2025 W12: Vile

March 17​–​23, 2025
1200 words

Quick bits:


Shower thoughts:


Regarding Nanoc 5, one of the first orders of business is to figure out the implementation language. My must-haves are as follows:

This leaves primarily Rust and Go in the running.3

There still is the open question about how to implement plug-ins, which will primarily4 be used for filters5 to transform markup languages and templating languages. As I see it, there are two ways of implementing plug-ins:

Supporting both approaches (and perhaps other approaches that I haven’t thought of yet) could be possible.

Another problem that needs to be addressed is how plugins are distributed. I would like people to easily create plugins locally and distribute them. I specifically don’t want Nanoc 5 to be limited to whatever filters are provided by default; one of the strengths of Nanoc is its flexibility in creating filters for new languages, like my own D★Mark or TomatenMark.6

For a while, I was toying with the idea of rewriting the core parts of Nanoc in Rust, but it’s a tough path that I am not keen on. Ruby–C interop is brittle, and I’d like to steer clear of it. The same applies to Ruby–Rust interop, even with tools like Rutie.

No — I think I want Nanoc 5 to be a green-field project, free from the constraints of the past. This way, and only this way, I’ll be able to experiment and innovate.

Perhaps, for now, I will implement an ultra-minimal static-site generator that can roughly do what I need it to for denisdefreyne.com, hyper-focused and feature-incomplete, but enough to get an understanding of which ideas work, and which ones do not.

Nanoc 4, in the mean time, will remain supported, of course; I am using it for multiple sites myself, after all. Besides, Nanoc 4 is quite stable anyway.


Entertainment:


Links:

Tech links:


  1. German for “ape.” Quite the insult. ↩︎

  2. I’ve got a copy of Affinity Publisher and I was tempted to use that, but figured that learning how to use Publisher wasn’t worth it for a single-page letter. Maybe next time! ↩︎

  3. There are some other languages that could be interesting, like D, Ocaml, Dart, Java, and Kotlin, but none of capture my interest as much as Go and Rust do. ↩︎

  4. Nanoc 5, as I see it, will have significantly fewer plugin types. Checking and deploying will most likely not make it into Nanoc 5, as those are independent concerns. I’m even thinking of removing the concept of pluggable data sources. This would leave only filters as plugins. ↩︎

  5. The term “filter” is confusing and Nanoc 5 would be a good opportunity to fix that naming problem. I don’t know why I chose the term “filter,” but I’m not the only one who has done that in their SSG. ↩︎

  6. For the latter I still need to work on getting a Ruby gem released, but it’s not a priority at the moment. ↩︎

  7. Black Narcissus, directed by Michael Powell and Emeric Pressburger, written by Rumer Godden, Michael Powell and Emeric Pressburger (The Archers, Independent Producers, 1947). ↩︎

You can reply to this weeknotes entry by email. I’d love to hear your thoughts!
If you like what I write, stick your email address below and subscribe. I send out my weeknotes every Sunday morning. Alternatively, subscribe to the web feed.