Hugo
Much like the missing 2012, this blog has been on hiatus for… wow, several years. I thought it was only twelve months, but it’s more like thirty.
Also similarly to that 2012 post, I’m motivated this time by moving to a new blog setup. Last time it was moving from Tumblr to self-hosted Wordpress, this time it’s moving from Wordpress to Hugo.
Wordpress has become frustrating to use on another of my blogs, especially with the release of the Gutenberg editor. Wordpress are certainly trying something new with the block editor, but it overcomplicates the ease of use of a simple text based blog. I tried it briefly but quickly found a plug-in that restored the basic text editor.
Even with the old editor restored, using the publishing interface is slow and fairly cumbersome - it feels like a very bloated content management system instead of a blog, with constant micro delays that all add up to a reluctance to logon and post. That may be due to my cheap hosting, but I’d prefer something quick and simple. Anything that feels like it gets in the way of being able to quickly post something seems problematic.
The final straw was finding that all the markdown content I’d created seemed to have reverted to HTML during the Gutenberg upgrade. This was super annoying, so I started looking around for a simpler - and faster - method.
Hugo seemed to be a good option (as long as you don’t need comments), and after some experimentation I found a great git-hosted utility by palaniraja that extracts markdown files from Wordpress (and Blogger) databases backups. It was amazingly painless, and very satisfying to see a directory with a simple list of text documents for each post. The process to get those posts appearing on a local Hugo site was also relatively painless, and the result was a super fast site of plain old HTML files.
Next it was a matter of finding and tweaking a theme, which was a good way to start to understand how Hugo works. I settled on hello-friend-ng, modifying it so it shows the full text of each post, creating year and month views, and making various other small changes.
For directory sanity I also wanted the post files should include the publication date in the filename. The date info was in the front-matter of the .md files, but automating extracting that to rename the files seemed too difficult - until I found this great post by Max Melcher which did exactly that via some Windows Powershell scripts. It’s amazing how it’s almost guaranteed that someone has done what you want, it’s just a matter of finding it - often that means StackExchange, but there’s also a million blogs out there of thoughtful people capturing their findings and processes. Thanks everyone.
I guess it’s kind of weird to be wanting a simpler method and ending up with a system where I have to build a site locally then FTP the entire site to a host in order to add a single post. Hardly simple, and I do have some reservations about whether that is going to be too frustrating. Plenty of people have obviously had similar thoughts, and there do seem to be some methods for automated build and deploy using tools like Git and hosts like Netlify. Ideally I could add a post on any device, copy just that post to somewhere, and have the site build and publish. I think that’s what the Netlify tool offers, but I haven’t tried it yet. That’s next.
In the meantime, this site is the end result of all of the above. Time to start posting again!