Migrated to Hugo Static Site generator
I haven't written anything in my blog for a little while. I don't really feel bad about it, but one of the things that I feel prevented me from writing new things here was that I had some troubles with my previous static site generator Jekyll. Last week I switched this site over to use Hugo.
What I like more about Hugo
One of the biggest issues I had with Jekyll was how difficult it was to setup
on a new machine. I am not a Ruby developer (although I know enough Python and
have seen enough Smalltalk to fake it) and so setting up a Ruby interpreter
with rvm
and getting Bundler setup was quite difficult when all I wanted to
do was write prose. Hugo on the other hand has a single executable. This means
that even though Hugo is written in Go I don't have to have Go setup on the
machine I want to write on. Instead I can just install an executable from my
package manager.
One other thing that I like about Hugo is that it supports .toml
front-matter on posts. Not really the biggest of deals, but I am not
wild about .yml
so this is a nice way to stick with something more familiar.
Finally one of the nicest things about Hugo is the automatic reloading when in development mode. This feature injects a script that will reload the page is anything in the file system that it's watching changes. This is really nice while authoring since it allows you to not have to switch out of your editor to see rendered changes.
What was the process
To perform the switch I used the hugo import jekyll
tool. This tool did a great
deal of the work as it copied over most of the posts and setup a new Hugo site.
After that I removed a number of blog posts that I had written a while ago and didn't feel so bad about having them fall off the internet (they are archived; I checked).
Then I went from blog post to blog post and for each:
- Switched the front-matter from YAML to TOML.
- Set up aliases so that old urls to live posts will still work.
- Added some tags and categories.
Finally I made sure that pages looked ok and that static files like the RSS
feed, the humans.txt
and the robots.txt
loaded.
Finally I went ahead and made the switch by merging merged the branch.
Thanks Jekyll and the people who support it for helping me build my site for so long. Thank you Hugo contributors for building a tool so nice that it made it feel like it was worth finally switching.