jeang3nie >

Restarting My Blog

It has been quite a while since I last posted here. I went through a period where I did all of my writing on gemini, and then in the fall of 2023 I started working towards a degree in Computer Science that took up the majority of my time (in conjunction with still working full-time). It's kind of sad, but it turns out that when you're working on a CS degree you tend to find yourself doing way less programming than you might want to, and without time to do any kind of writing beyond what you're doing to satisfy course requirements.

I little while ago I decided that state of affairs was just intolerable. Around that same time, Mozilla's current clown in chief announced that the company was going to focus on becoming an AI first company, just the latest in a series of utter failures to read the room that most of us who care about Free Software and a free and open internet have become used to from Mozilla. It was at that point that I decided I'd had enough and started to seriously look for alternatives. I used Gnome Web (Epiphany) for a while and decided that WebKit was mostly fine as a rendering engine, but that the interface left something to be desired.

Deciding that it was time to put up or shut up I broke ground on the Sunstone browser. I quickly rediscovered how much I enjoy writing software and stretching my knowledge. It felt great. I shared the project on the fediverse and I've continued to chip away at adding features and solidifying the code, but I started wanting to talk about it in a bit more depth. Something that stopped me from just immediately beginning to write about it on this blog is that I have long wanted to redo the blog anyway.

This blog has historically used Zola to build this blog from markdown files. There isn't anything particularly wrong with Zola. It has all of the features that almost every other static site generator has, as well as most of the same weaknesses. After being immersed in higher education for a while I've had to learn enough LaTex to write out a lot of equations and other math concepts, and I realized that I was likely going to want to include math in my blog as well. It turns out that almost every ssg, if they provision for writing math equations at all, does so using Javascript that gets rendered by the client.

Yuck.

I mean, it works. You can pretty much cound on near 100% of the browsers on the internet having Javascript not just supported but turned on because of social pressure if nothing else. I just really disagree with using Javascript when there are other ways to accomplish the same thing. I mean, once the math equations are written down in LaTex they aren't going to change. There's nothing dynamic about it inherently, so no justification for using Javascript on the client.

Riddermark

Right around the same time I started Sunstone I began working slowly on a parser which would take in Markdown and LaTex math, send the appropriate portions to existing parsers, send any code blocks to Syntect for highlighting and hand you back some (preferably well-formatted) html and mathml. If you don't happen to know, Mathml is an xml-like markup language for math equations which is supported in all of the major browser engines now. I could have always decided to just write mathml by hand, but it's tedious compared with LaTex.

This little project proved capable of rendering anything in particular I threw at it, so I kept slowly expanding on it to build my own ssg. I had been trying out a bunch of other ssg's during this time and just finally decided that the only way I was getting one that I was truly happy with was to just build it. What I've come up with probably wouldn't make anyone else happy, but it works well for my workflow. It doesn't use a templating engine, just running String.replace() on the templates, which are compiled into the binary along with the css and site metadata. There's no development server. Instead I just fire up busybox httpd in the output directlry as I'm working and periodically rebuild the site. It doesn't rebuild the site automatically when a file is saved, either. Instead, from within vim, I just type :! rdm build and then flip over to the next virtual desktop to check the output.

I find that this strikes a nice balance between having enough ssg to be useful while not so much as to be overly complicated. Anything in the content directory with the .md extension gets rendered as Markdown and LaTex into html, using the compiled in templates, while anything else just gets copied over as is. I get math equations rendered at the same time as the Markdown, source code highlighting, and the pages get processed in parallel using Rayon. After porting over my old blog to fill it out with some content it feels plenty fast. else just gets copied over

Tags for this post: Rust Riddermark Sunstone Vala

© 2026 by Nathan Fisher
2026-05-31T22:37:38Z