Static Site Generators and Github Pages

I told you a while ago about my experience building a static site with Hugo.  I was updating the page to show a few changes (notably to my book group website, but also to update the year in the footer).  I stumbled upon a small bug in Hugo’s date reporting, but the real issue that caused me to waste a ton of time was that in my aggravation, I wound up deleting the public folder to ensure a clean start.  But in a Github Pages based site, the public folder should really be a separate Github repo pointing to your target site!

So now I do a quick check in my deployment script to make sure I haven’t accidentally done this again.  Be sure you do something similar!

Note: If you are using Jekyll instead of Hugo, the same advice applies, but you’ll want to check _site instead of public.

Updating my book group website COMPLETE!

So I decided to go with Jekyll, a Ruby based static site generator. I created a new website for my book group, using a gem that makes it easy to autogenerate Amazon affiliate URLs with the Product Advertising API.

I open sourced the project in case anyone else wants to build a book club website, or any other type of website that uses Amazon affiliate links.

Updating my book group website

My beloved book group website is getting the dreaded “not mobile-friendly” warning from Google.  That’s because the site was built when “RWD” meant  “rear-wheel drive,” not “responsive web design!”  But challenge accepted – I will rework the site, and its 17 years of book choices – to be compatible with the modern web.  And you, dear reader, will be lucky enough to follow my adventure!


Building a static site on Github with Hugo

The cool kids are using Hugo to build static websites, so I wanted to give it a try myself.   It was easy enough to use locally, but the instructions on the website for Hugo hosting on Github pages were too complicated for me.  So I used what I think is a simpler workflow, and documented it in my site’s  Here you go:

  1. Install Hugo.
  2. Use
    hugo new site my-site-name

    to create the site. Change directory to my-site-name.

  3. Grab a template you like from HugoThemes. Create the directory themes and install it there.
  4. Run
    hugo server -w

    to start looking at your site locally. Add content until you’re happy.

  5. Fiddle with config.toml until you’re happy. Remember you have to restart “hugo server” each time you change configuration; the LiveReload doesn’t handle this.
  6. Create a .gitignore and add “public” to it.
  7. Add your site to a new git repository. For reference, mine is
  8. Run

    to generate the final copy of your site. (I assume you have added your template to the config.toml file; if not, you will need to use “hugo -t your-template”.) Change directory to “public”.

  9. Add this directory to a new repository, with the name Again, for reference, mine is
  10. You’re done! Your site will be live shortly at”>