How to Create a Book Database with Hugo and YAML - Part 3

Once I got my YAML book list set up, I couldn’t stop thinking of different uses for it. Although I’m mainly using it to generate reading lists for specific workshops, I thought it would be useful to also generate a full reading list or bibliography. In this tutorial, I’ll extend the code from Part 1 and Part 2 to retrieve and display all the books, arranged by subject. To follow along, you’ll need the following files from those earlier tutorials: ...

5 October, 2025 · 3 min · 569 words · Catherine Pope

How to Create a Book Database With Hugo and YAML - Part 2

In my previous tutorial, I showed how to create a simple YAML database in Hugo for reusable book links. Only five minutes passed before I started tinkering and building something fancier. In this tutorial, I’ll explain how to create subject-specific book lists. This approach works well for quickly generating and sharing reading lists. As with the previous tutorial, you can also adapt this code for organising web links, tools, or other resources. ...

30 September, 2025 · 5 min · 948 words · Catherine Pope

How to Create a Book Database with Hugo and YAML - Part 1

While creating resources for some of my workshops, I realised I was recommending the same books repeatedly. This also meant I was typing the same details repeatedly - time I could be spending reading. I then started experimenting with creating a simple database in Hugo. I wanted a solution that would allow me to maintain my book details (title, author, and ISBN) in one place, then pull them into specific pages with a shortcode and link to a bookstore. This way, I’d: ...

29 September, 2025 · 5 min · 979 words · Catherine Pope

Open External Links in a New Tab With Hugo

After months of faffing around and configuring external links manually in Hugo, I decided there must be a better way. There is! Here’s the solution that worked for me for my bookstore links. Some themes include native support, so it’s a case of checking the documentation and adding a line to your hugo.yaml or hugo.toml config file. If, like me, you’re using a theme that doesn’t support this feature, here’s a method that might work for you. ...

18 September, 2025 · 3 min · 582 words · Catherine Pope

How to Automatically Sync AudioPen Notes with Obsidian

I’ve been an enthusiastic user of AudioPen for a few years. This brilliant app records and accurately transcribes your voice notes in moments. You can either opt for a light tidy to add punctuation and remove your ums and ahs, or ask it to make you sound like Cicero. Although you can organise your notes in AudioPen using folders and tags, most of us nerdy types already have a preferred note-taking app. In my case, that’s Obsidian. If you don’t know Obsidian, it’s a powerful yet simple app that stores your notes and plain markdown files and gives you various ways to make connections between them. ...

15 September, 2025 · 3 min · 479 words · Catherine Pope

Manage Multiple Hugo Versions with Docker

Hugo is usually the simple solution for website generation. Recently, though, I ran into a frustrating situation: the theme I wanted to use for one site required an older version of Hugo, whereas another site demanded the latest version. Although it’s possible to run multiple Hugo versions on the same machine, life is already complicated enough. In this tutorial, I’ll explain how you can build and preview a Hugo site with a Docker container. ...

15 September, 2025 · 4 min · 684 words · Catherine Pope

Creating a Jekyll Site with Docker

Although it only takes a minute to create a Jekyll site, you could easily spend a large chunk of your life installing the environment. A query on the Write the Docs forum prompted me to share an easier way. In this post, I’ll show you how to create a Jekyll site in three steps, using the free Docker Community Edition and Bret Fisher’s images. If you want to use Docker to preview an existing Jekyll site, take a look at my other tutorial. ...

25 September, 2022 · 3 min · 593 words · Catherine Pope

Creating and Running a Docker Image of Your Website

Introduction In the olden days, it would take hours to install and configure a web server on a local machine. It was especially fiddly if you wanted to recreate a specific environment for testing purposes. Happily, Docker has made our lives much easier. In this tutorial, we’ll package a simple website and nginx server as a Docker image. Anyone with Docker Desktop installed can then run that site in seconds without having to set up anything. ...

21 August, 2022 · 4 min · 691 words · Catherine Pope

Previewing Jekyll Sites with Docker

Introduction Jekyll is a beautifully simple way to build and deploy a static website. Well, it’s simple once you’ve got everything installed and configured. Unless you’re already confident with Ruby, it’ll probably take you most of a wet weekend to get it running consistently. Although the local installation is working well for me, I’m nervous it’ll break. I’m already encountering a few Ruby conflicts with other projects. Resolving those issues isn’t my idea of fun. Given I’ve been doing a lot of work with Docker lately, I decided to see whether I could run my site as a container instead. Plot spoiler: yes, I could! ...

14 August, 2022 · 3 min · 590 words · Catherine Pope

How to Create an Interactive Checklist in InDesign

In this short tutorial, I’ll show you how you can create a checklist in InDesign that’s both interactive and printable. I’m assuming you already know the basics of InDesign. If not, I recommend the InDesign Essentials course on Skillshare.

18 March, 2021 · 1 min · 39 words · Catherine Pope