New blog, who dis?11 Jan 2023 · 📖 in 2 minutes A new project for a new year
I am starting the new year with a lot of time on my hands. This year I won't be jumping back to the deluge of new-year emails or trying to remember what projects I was working on. This year it'll start with a break. Throughout Jan I want to create a few things for myself and this blog is the perfect test bed.
Internally my blog is known as
Bloggy and it's a fairly simple jekyll static site that is generated by Vercel when I push changes to GitHub. Overall I am happy with my setup and I really enjoy the freedom with not having to build anything myself - just write some markdown push my changes.
However, the static site generation part can't be that difficult to hand-roll right?
The steps I would need to do are:
- Parse liquid templates
- Parse post markdown
- Generate html for each post
- Generate html for the home page + pagination
So that's what I did. I re-wrote the jekyll site generator in Rust. It wasn't as straightforward as what I had imagined but I started out with the pretty solid building blocks of liquid and pulldown-cmark and glued it all together - all in all it's around 300 lines give or take but I expect that will balloon.
Rebloggy is by no means complete, there's plenty of features I need to implement e.g. incremental building / watching. I'm also currently using
node-http-server to serve it locally too (something I could achieve with tiny-http).
I'll also be without the about page and likely the RSS feed, as currently I only build the posts and the home pages. I plan to add these later. One thing I deliberately left out was the SASS integration - I think we're probably at a point where I can do everything in vanilla CSS without the extra build steps.
Thank you, next.
Bloggy served me well and I got on well enough with Jekyll during the 7 years that I've used it (from the handful of posts per year you can see i'm also a prolific writer). The time has come to move on, and from today you'll be reading this on the new custom site generator that I built.
I have some ideas for new features I would like to build out now though:
- Post "series" links / UI
- Fresh design
- ActivityPub integration?
- Different types of media, going beyond "posts"
- Comment box / posts from Mastodon / Twitter