Pair Programming with Hugo

I mentioned in my first post on my new parallel universe version of scottwillsey.com that I am using Hugo to generate the site. And Vic and I joked in our Mr. Robot Season 4 podcast on BubbleSort TV that we are now pair programming buddies. Truth is, I have worked a lot with Vic on both the BubbleSort sites and server and on Hugo in general, learning what I needed in order to build this site and prepare for some future projects.

Hugo has a lot of what you need to make a full-featured website built in. It’s highly customizable, and it’s not hard to learn. Like anything, it does take a little time and digging to uncover some of its nuances.

One of the things I’m working on right now is customizing the RSS feeds for the site so I can start linking to them and people can start using them. By default, Hugo makes RSS feeds for every section of the site, including the entire site with every post and every page included. I don’t really want that – I want to stick to one RSS feed for posts, and then eventually individual RSS feeds for my archived inactive podcasts.

In addition, I’m also customizing my site menu to use Font Awesome images for most entries instead of text. They should be fairly intuitive, and it’ll save me some space and I like the way it looks.

I do my development locally on my Mac and save it all into a development git repo. Then when I’m ready, I’ll incorporate the changes into the live site. However, due to the fact that the server is running an older version of Hugo, the way the CSS files are generated in the Hugo Coder theme I’ve modified for my use doesn’t work. As a result, I can’t use a simple develop/master branch scenario like I’d like to. Instead, I have a third awkward development branch for things that are going to go live before Hugo is upgraded to 0.60.x on the server.

If it sounds messy, it is, just a little bit. It would be nice to be on the same versions of Hugo for both development and production.

The end goal for this particular website is to somehow create a logical and useful organization for the following:

  • A series about iOS automation and nerdery,
  • A series about Mac nerdery,
  • A series about Hugo,
  • Podcast archives for any defunct podcasts of mine I don’t wish to stab a silver spike into the heart of,
  • Other projects such as Raspberry Pi and other tech weirdness,
  • General topics not related to any of the above.

Anytime you begin to learn either a new platform or programming language, it’s like learning a human language. First your attempts to communicate are awkward, with very little ability to convey nuance or precise meaning. Later, as your vocabulary grows, you can explore deeper topics and display a wider range of linguistic expression. You become a more interesting person with the ability to choose words very specifically.

Using technology is the same – at first you’re lucky to make something work, and it may not be the most efficient or secure way, and you may not realize your chosen platform has frameworks for achieving the same result in a much better way. Later, you can wield it as a fine instrument instead of a clubbing device.

Right now, I’m in the clubbing stage of life with Hugo. As a result, things will change around here frequently and suddenly. My deepest insincere apologies.