Good Bye, WordPress

After 12 years, it’s time to call it quits and move on.

As I’ve written extensively about for a month now, I’ve been looking for something else than WordPress to run this site. I considered other content management systems, then static site generators, and finally settled on Hugo. The transition from WordPress to Hugo has taken a ridiculous amount of time, and I’m far from finished. It feels like I’ve barely scratched the surface, to be honest.

At this point, I’ve only moved the contents of the blog posts over to Hugo, and a lot of grounds-keeping remains before they are all in the shape I want them to be. But most of them are look acceptable, and I’ll go into more details in my next post, which will only be posted on the Hugofied version of the site.

Since the majority of the site – everything that’s not posts – will still be served with WordPress for the foreseeable future, I’ll also keep all the posts online for a while. It just makes my life a lot easier to keep the original WordPress site online. But it’s being moved to its own subdomain,, and this is the last post I’ll publish using WordPress.

If you’re seeing this one on the front page, you’re in the wrong place. Please move along to the version of the site powered by Hugo instead.

WordPress to Hugo Update II

All right, here’s the thing.

I haven’t really had the motivation to work as much as I wanted on the WordPress to Hugo transition.

Instead, I’ve been watching Game of Thrones.

But I’m seeing the light at the end of the tunnel for the first iteration, and you can browse a preview here.

WordPress to Hugo Update I

I’ll keep this short-ish and sweet.

I’m in the process of converting all my 2K+ posts in WordPress to Markdown. It’s a dirty job that would have taken forever to finish if I was to do it manually. To speed up the process, I’ve started to write a couple of batch converters, and I’m dumping all the code on GitHub.

The repository is somewhat misnamed, it should probably be “wordpress-to-hugo-converters” instead. Changing the name is on my long to-do list. If you start looking at the Kotlin code, please don’t use it a basis for anything at all. This is my first proper to at Kotlin, except for some minor dabbling at work, and I suspect there’s a lot of things that can be improved.

So far I’ve created batch converters that structure the Markdown files correctly to support Hugo leaf page bundles, convert footnotes created with the Easy Footnotes plugin to proper Markdown plugins, and convert HTML img and a tags to Markdown. The last thing I think I’ll be able to do with a batch converter is to move the original images uploaded to WordPress into Hugo’s leaf page nodes. Then I’ll probably have to do some manual tinkering in somewhere in between 100 and 200 Markdown files.

When all content has been converted, I’ll have to find – and probably modify – a theme for my new Hugo site. That will probably take a while, but I’ll try to get something that looks all right online pretty quickly without too much tinkering.

Then I have to somehow make sure all my non-WordPress features like A Picture A Day continue to work. The quick and dirty way to do that would be to just keep WordPress running on a subdomain and link to that. That’s probably what I’ll do until I have the time to move the features to Hugo as well.

To summarize, I’m cutting every corner I can find to get something up and running fairly quickly. But because of the number of posts I’ve written and features I’ve created over the last 20 years, it’s still a lot of work to get everything working acceptably.

I suspect I’ll use most of my spare time in March, and perhaps April as well, to work on this, which means there will be a lot less to read around here.

March One-liners

It’s March, which means it’s a good time for some new funny one-liners. To be honest, all the time is a good time for some new funny one-liners. Enjoy!

  • “We cannot put off living until we are ready.” — Jose Ortega y Gasset
  • My mind is like concrete: thoroughly mixed up and permanently set.
  • In life, you have two choices: get over it or die with it on your mind.
  • If you are what you eat, I’m dead meat.
  • “You can complain because roses have thorns, or you can rejoice because thorns have roses.” — Abraham Lincoln
  • Money can’t buy happiness, but it can take you to a lot more places to look for it.
  • “If you can’t beat them, arrange to have them beaten.” — George Carlin
  • The main trouble with mental notes is the ink fades so fast.
  • Life is not a matter of holding good cards, but of playing a poor hand well.
  • The number of people watching you is proportional to the stupidity of your action.
  • Don’t ever confuse an open mind with one that’s vacant.
  • Never buy a Rolex from someone who is out of breath.
  • I don’t mind the rat race, but I could do with a little more cheese.
  • I fought the lawn and the lawn won.
  • Time is never wasted when you are wasted all the time.
  • Good judgment comes from experience and a lot of that comes from bad judgment.
  • You can’t be late until you show up.
  • When all else fails, lower your standards.
  • Make a firm decision now. You can always change it later.

Thank you! I’ll help myself out.

An Evening With Hugo

No, I didn’t spend quality time with my 8th grade science teacher1.

After I posted my previous post about static site generators, I began reading through the documentation for all the alternatives I’d outlined. Hugo seemed like the one that ticked off most boxes on my long list of requirements, so I decided to take a deeper dive into the world of Hugo.

The first thing to love about Hugo is that the static site generator is distributed as a singly binary file. There is no need to keep any libraries, programming languages or other dependencies up to date. I love that, because I’m continuously fighting furious battles in the dependency war at work, and I don’t want to do the same in my spare time as well.

It’s also important to me that it’s as easy as humanly possible to convert my current WordPress site to whatever static site generator I decide to use. In Hugo’s case, there are several ways of doing this, and after some wrestling with my PHP settings, I managed to export two point five gigabytes worth of content from WordPress. From there, getting the site up and running on Hugo with all of my 20 year’s worth of posts didn’t take more than the better part of an hour.

So now I have to do is hit the publish button, right? Unfortunately, it’s not that easy.