A New Chapter for My Blog with Zola
2024-12-19 | Personal ZolaThis website has had quite the journey, moving through different domain names, frameworks, and applications over the years. It all started with static HTML and table-based layouts, then Community Server, Sitecore, and finally BlogEngine.net, where it’s been parked for over a decade. I haven't blogged at all since moving on from Hedgehog/Sitecore, but it's high time I get back to it.
When a developer decides to blog, the first course of action is always figuring out the blog platform and process. In my case, BlogEngine.net is so outdated that migrating away just made sense.
I don't want to maintain an application, a database, or anything that goes along with it. No WYSIWYG editors for me. The goal is simplicity. Requirements always start simple, but can I keep them that way?
This blog is fairly modest. Most of the features and functionality can go, but here’s what’s required:
- Dead simple hosting option. Bonus if it's free.
- Ability to create pages outside of the blog, as needed.
- Currently less than 100 posts, and I’d like to keep the URLs.
- Show posts by tag or category.
- Show posts by date.
- RSS feed.
- Commenting on blog posts.
- All posts/pages should be written in Markdown.
All signs point to static site generation except for the comments, but we'll solve that later. For the initial migration, I’d like to keep showing the existing comments and add support for new comments in the future.
I looked at the usual suspects (and I've done this a few times over the years) like Jekyll with GitHub Pages. There was always something that stopped me from moving forward with this solution.
I ultimately landed on Zola and GitHub Pages. The main reason I liked Zola over Jekyll is the ease of use. It’s a pre-built binary that works on Windows, Linux, and macOS, so it should work wherever I need it. Sure, I could get Jekyll to work on Windows, but Zola has less friction. And GitHub Pages? Dead simple. The site's content/code will be in a GitHub repository, and pushing to GitHub Pages is extremely straightforward. Custom domain support? Check!
The migration path wasn't terribly difficult:
- Export existing blog posts from BlogEngine to BlogML.
- Use a pre-existing utility, with modifications, to:
- Convert the blog posts into Markdown with "front matter".
- Migrate any images so they are "co-located" with the blog post.
- Migrate comments as
.yml
files "co-located" with the blog post.
- Clean up the taxonomies, fix links, and general housekeeping.
- Push the content – We have our first PR.
- Find a theme and get the site to render!
The theme/templates gallery for Zola is admittedly a bit light on options. I did find that codingfox-zola appealed to me, but it required some changes. I ultimately made some sweeping changes to make it passable for my initial migration. We’ll work on the theme as time permits.
Overall, I’m happy I can now blog with Markdown out of a Git repo where hosting is free. If my blogging cadence picks up, I’ll also work on the commenting system.
Comments