It’s been a while! It’s been so long, I forgot how to build and deploy an update to this blog :). What a good opportunity to blog about a reasonable setup for a personal, static-content-only blog hosted by Github pages!

Jekyll

I used to spend many-an-hour wringing my hands about the prettiest and best CSS for a personal blog. Then I found brutalist web design, which offers sweet release by embracing simplicity.

But you still need something to actually cobble together the simple HTML files, and jekyll is the standard course. But software is always changing, adding features, and regressing bugs. If you only want to update once a year or less, your scripts will fall out of date.

Docker

But fear not, it’s 2023 and Docker has delivered on its promise of providing for predictable environments. Why not take a look at the command for generating this very website?

docker run --rm -it \
  --volume="$PWD:/srv/jekyll" \
  --volume="$PWD/vendor/bundle:/usr/local/bundle" \
  -p 4000:4000 jekyll/jekyll:4.2.2 \
  jekyll serve

This will pop out a link at localhost which hot-reloads updates as you key them into your text files!

Github

Okay, so it looks good locally and it’s time to release it to the world. What now?

Github Pages has documentation for how to host static content in your git repo, which github will then serve as a static web page. I always found the initial set up confusing. But once you get it going, you do have the nice property that it natively supports Jekyll.

It appears to notice the standard _config.yml, and honors its configuration as a Jekyll specification. So github’s servers will build the static site for you on upload! So, it’s just

git commit -am 'update'
git push