Welcome to the new blog, very nearly identical to the old blog
Thursday, June 29, 2023
Comments: 9 (latest July 17)
Tagged: zarf, zarfhome, blog, blogger, bloggor, gameshelf, python, mastodon, static site generators
Six years ago, I wrote a post that started:
Nine years ago I made my blogging debut with a post titled Games that don't exist.
-- "I'm shifting my bloggery to blog.zarfhome.com", May 27, 2017
That's a total of fifteen years, or about four and a half light-parsecs as the Falcon flies. Pretty good!
The news at the time (2017) was that I was shifting my blog off The Gameshelf (thanks Jmac) and onto my own site, blog.zarfhome.com.
That part hasn't changed! Here we still are at blog.zarfhome.com. But under the waterline it's a whole new duck.
See, I got tired on relying on Google's Blogger.com. Blogger works fine. Google hasn't cancelled it. They've barely even updated it. But, you know, Google might cancel it, or upgrade it with some fancy new "feature".
Also, Blogger.com wasn't friendly to Markdown. I write everything in Markdown. Converting that to HTML for Blogger was somewhat messy. I got tired of the corner cases.
So I exported all my blog data (thanks Google Takeout) and shoved it into a static site generator and here we are. 527 old blog posts and one brand-shiny-new one. Blogging will continue.
Some details:
- All the old post URLs should still work. But the canonical URLs don't say
.html
any more. You can use tidy URLs (likehttps://blog.zarfhome.com/2023/06/welcome-to-the-new-blog
) in the future. - The Atom feed is still
https://blog.zarfhome.com/feeds/posts/default
. However, I've lost the old Blogger GUIDs, so you'll probably see a flood of old posts in your feed reader. Sorry! It's a one-time thing, or at worst once every five or ten years. - There's an RSS-per-se-RSS feed too, but the URL has changed. It's now
https://blog.zarfhome.com/feeds/posts/default.rss
. Note: the RSS feed contains only article excerpts. The Atom feed contains full articles. - Formatting on old posts may be janky. The Gameshelf-to-Blogger-to-here pipeline was a bit of a mess.
- I've imported all the comments from the old blogs.
- New comments are... wait, how do comments work on an SSG site? Answer: Mastodon! Yes, you need to use Mastodon to comment now. I know this is a roadblock for a lot of you, and I apologize for this, but this just isn't a comment-heavy blog. The benefits of a static self-hosted system outweigh the convenience of the old comment system. See this page for more info.
So what's the software like? Answer: it's a hacked-together bit of Python. No surprise there, I guess.
Usually I love posting source code for my weird projects. I may yet post the source code for this one. But there's just not much to it. It reads in text files, shoves them through Markdown and Jinja, and writes out HTML. There's a little bit of work to assemble tag lists and archive pages, but nothing surprising. The whole thing is under 2000 lines of Python.
(The Mastodon-comment script is borrowed from this post by Carl Schwan. Thanks!)
The Python script is so simple that it regenerates the entire site every time I run it. Takes under a second. I intend to add a caching system so that it only rebuilds changed pages, but, cough cough, I haven't gotten around to that yet. Maybe when that works I'll post the source. No rush.
Really, the Python itself was about 5% of the effort of this site refresh. 25% was coming up with a nice clean page template. (Blogger's wasn't width-responsive at all.) The vast majority of the work was importing all those old posts! And the old images!
(You wouldn't believe how messy fifteen years of blog export can get. The posts were in hacky HTML, some with multiple layers of hack. Gameshelf used one scheme for uploaded image URLs -- until we broke it and started uploading all images to the root directory. Blogger used a different scheme, or rather three different schemes, including a fun period where the image URL didn't include the filename or the image type. Some of the images were at blogspot.com
and others were at blogger.googleusercontent.com
. I had to fetch them, regularize the filenames, reupload them to the new site, and then munge all the posts to clean up the <img>
tags. I wrote a lot of throwaway munger scripts.)
If you want to run your own SSG blog, honestly, you don't want my code. Pick an existing system. I've used Pelican (for narrascope.org) and Metalsmith (for the IFTF site). Zola comes highly recommended too. Writing your own is purely a for-fun exercise -- hacking therapy. I needed some.
Comments from Mastodon
@mike I was only looking at SSG setups, really. I’m happy with my editor (BBEdit).
@zarfeblong Fair enough. I'm very happy with wordpress.com, so I've not used WriteFreely myself. But I do like the sense that it's properly connected to the Fediverse right out of the box. I might try it the next time I have a hankering to start a new blog.
@zarfeblong I'll be honest: I'm just here to try out comments via Mastodon.
@zarfeblong nice! i gotta rig up something similar for my ancient blogger blog i’ve been wanting to revive lately...
@zarfeblong i like the comment-on-mastodon feature! I'd be happy to learn more about it and similar mastodon-and-blog hacks!
@elhult Discussion here, with sources: https://blog.zarfhome.com/comments
The script itself is https://blog.zarfhome.com/js/fedicomments.js , but most of that is just spitting out DOM to display the loaded comments.
Comments from Andrew Plotkin
Source code for the blog tool is now up: https://github.com/erkyrath/bloggor.
@zarfeblong cool idea to use a social network for the social side of blogging! Not that I publish much on my blog in recent years but this has long been my dilemma — I don't want to *not* allow comments or get feedback, but neither do I want to deal with the spam on my end or expose my readers to some questionable-business-model company's JavaScript on theirs!