Managing Zotero Attachments with Zotmoov

In my previous post, I explained several options for managing your Zotero storage. If you’re willing to install a plugin, there’s another solution: Zotmoov. If you’ve been using Zotero for a while, you’ve probably heard of Zotfile, a popular plugin that allowed users to automatically organise PDFs and keep them synced through cloud storage. Unfortunately, Zotfile is no longer maintained and doesn’t work with Zotero 7. The good news is that Zotmoov offers some of the same features, while others are now a core part of Zotero 7. ...

20 November, 2025 · 4 min · 768 words · Catherine Pope

How to Create a Linux Virtual Machine on a Mac

As a technical writer, I often work with different operating systems and environments to test applications. It would be a nuisance if I needed a separate machine for every test case. Happily, it’s possible to run multiple operating systems on a single machine. In this tutorial, I’ll explain how to create a Linux virtual machine (VM) on an Apple Silicon Mac using UTM (which stands for Universal Turing Machine). UTM is free, open-source virtualisation software that’s specifically designed for macOS. ...

5 November, 2025 · 6 min · 1090 words · Catherine Pope

How to Use Zotero with Scrivener

Although being a 21st-century researcher has its challenges, we are at least blessed with some excellent tools. Scrivener and Zotero are two of the best. This dream team makes it much easier to plan and draft your writing, then add citations and bibliographies in the right format. Unfortunately, the two tools aren’t directly integrated. This means finding workarounds and making compromises. In a pair of blog posts, I’ll explain two approaches - one simple, one more complicated - so you can decide what’s right for you. ...

21 October, 2025 · 7 min · 1355 words · Catherine Pope

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

How to Add a Theme as a Hugo Module

Although Hugo modules are supposed to make life simple, this took me an embarrassingly long time to fathom. In this tutorial, I’ll show you how to add a theme as a module of your Hugo site. I’m assuming you already have a Hugo site and have chosen a theme that’s available as a module. You also need to have run git init in your site folder. If you want to learn more about modules, take a look at the Hugo documentation. ...

30 March, 2023 · 2 min · 394 words · Catherine Pope