I hacked up an implementation of the shortcut directive for riki, my static site generator that implements some of ikiwiki in Rust.

https://blog.liw.fi/posts/2026/riki-05/
https://app.radicle.xyz/nodes/radicle.liw.fi/rad%3Azw9BgStPgCkdsMspzs7EGbwnXq3r

#riki #ikiwiki #developmentNote

Riki: the shortcut directive

Riki is my partial re-implementation of the static site generator parts of ikiwiki, in Rust. Today I rewrote the code and tests for resolving links within a site. Not exciting, as such, but lots of fiddly details.

https://blog.liw.fi/posts/2026/riki-02/

#ikiwiki #riki #deveopmentNote

Riki internal linking tests

Another day of hacking on riki, my partial ikiwiki clone in Rust, but without taking notes. Today I should've taken notes, grumble. I added a type for the whole site, so that it can have a method for resolving internal links in the site. A small step, but I meandered, and it would've been useful to focus by taking notes. I got there in the end, though.

#riki #ikiwiki

#Jekyll with the #AsciiDoctor plugin looks pretty decent as an option (the plugin is also well-integrated), but Jekyll seems to be a bit restrictive on the site structure, and anybody who has perused my website

https://wok.oblomov.eu/

probably knows by now that aside from the crappy CSS it also fully leverages the power of #ikiwiki's inline directive for nested awesomeness*.

*debatable

So hm should I rewrite Ikiwiki in #Ruby?

2/2

wok

wok

I'm going to have to write my own #AsciiDoctor-based static site generator, right?

I still haven't found anything that fits my use case, coming from #ikiwiki, which I want to leave because it's slow, written in Perl (not my favorite language) and doesn't integrate well with AsciiDoctor.

#Antora manages to both be overengineered for my use case *and* miss essential features like feed generation. Also node.js, no thanks

1/2

#SSG

I've implemented, and now blogged about, page names and resolving internal links to other pages in my partial ikiwiki clone in Rust, riki.

https://blog.liw.fi/posts/2025/riki-pagenames/

#riki #ikiwiki

riki page names and internal links

I'm going to try to re-implement part of ikiwiki. It's my third attempt, so the likelihood of failure is high. I'll blog about this for general amusements. "Software development as a comedic performance", if you will.

The name of the new program is riki: it's part of ikiwiki and it's written in Rust.

https://blog.liw.fi/posts/2025/riki-relaunch/

#ikiwiki #riki

Implementing an ikiwiki subset in Rust

We’ve got fresh mirrors of…

- qmail.org
- netqmail.org
- lifewithqmail.org (history reconstituted from RCS via CVS)

All in #Git, mirrored to GitHub, managed by #ikiwiki.

https://notqmail.org/mirrors
Mirrors

I recently picked another of my dormant hobby projects: re-implementing (less than) half of the #ikiwiki static site generator. I've used ikiwiki for about 20 years now, and I'm mostly very happy with it. But I have one or two sites where it's quite slow (read: up to 20 minutes for a full build), so I'll see if I can implement enough in Rust to satisfy my own needs.

(I already had negative free time so this will take a while.)

Would you like to read blog posts about this niche topic?

Yes, please.
91.4%
Nah, I'm fine.
8.6%
Poll ended at .

That shell snippet gets the latest time for each file from Git and sets the file mtime to that. I with ikiwiki did this. It's fast enough to do every time.

#ikiwiki