the site
By design, this is quite a simple web site.
I use a static site generator, Hugo, to roll markdown files I have written into a website (HTML and CSS). The (default) ananke theme gives the files a consistent look and feel.
tools
The content files and the resulting website files are under version control with git, and synchronised with GitHub. The site is actually built with GitHub Actions and served by GitHub Pages.
Most content is written in markdown, often on my phone or tablet on Bear in quieter moments. I use Visual Studio Code to edit longer posts and to adjust Hugo configuration and template files.
All the code is available in the site’s GitHub repository. Ideas for future features and content are stored as issues in the repository.
The Hugo documentation has been very helpful for a new starter.
git workflow
I tend to write new content directly on the main branch. Each new post is a fresh commit. I also make a daily commit where I am doing editing or proofing across multiple posts.
I create an issue on Github to plan and track each new site feature. For example, I used an issue to capture my plans for a taxonomy to categorise posts and set up a linked branch to develop the cross-cutting configuration changes to the site. I was then able to test these changes on the branch before merging these edits into main.
At the end of each day that I work on a branch for the site, I try to make a commit called ‘WIP’ to back up my progress from my local repository onto Github.
When a feature is complete and I need to merge the branch into main, I try to squash any WIP commits and then re-base the branch against main to pick up the new content.
This approach helps me to keep changes to the content of the site separate from the changes to the site’s configuration files.
A Github action re-builds the site each time the main branch is updated and deploys it to Github pages.
features
2024-09-24: First, I set up a static about page, with a bit about me. I also added a link to the header on each other page.
2024-10-20: Second, I set up a taxonomy of post topics, which allows me to add topic tags to each post and provides a list of all posts on a topic.