Me.
This is a sorta-kinda living document, a record of my idiosyncratic decisions to first move to, and then bend the Blowfish theme to my needs.

I changed my blog theme from Papermod to Blowfish.
Why move to Blowfish?#
Papermod, to my mind, is perfection. And I outgrew it. That’s all there was to it.
Papermod caters to the needs of a blog, and I think my blog is growing slowly into a multi section website.
My needs outgrew what Papermod had to offer.
I wanted menus and possibly submenus and Papermod does not do them.
The finished outcome, while not as pretty and uniform as the old Papermod site, makes writing and managing it much more simpler.
Blowfish specific things for future Jason to note.#
Big Picture things#
- The theme does a lot. Most of which I don’t think I need.
- The aim is to match what my site looked with Papermod, as closely as possible.
- Everything CSS is in
assets/css/custom.css, rather than multiple CSS files as it was with Papermod. - Pagefind powers search on the site. The inbuilt search is disabled in
main.toml. - Footnotes use Littlefoot, to appear in popups, so that the need to scroll up and down the page is reduced.
Configuration#
Blowfish separates everything out in its config. Lots of toml files in there.
- Base config is in
hugo.toml, theme parameters are inparams.toml, menus inmenus.XX.tomland language + translation related stuff is inlanguages.XX.toml1 main.tomlsets the theme, thebaseURLand I’ve added a section to limit RSS entries to only 50 items- The author parameters along with the social link set as well as the logo are in
languages.XX.toml. I have duplicated them. One forENand one forFR. The logo that it requires, is in theassets/logodirectory. - Menus and submenus in
menus.XX.toml. Duplicated. The English menus have English names and the French ones. - Parameters, the header is set to basic. Every other option creates a sticky header of some sort. Lots of other changes. Most are self explanatory. Turned off “Hero” options everywhere, to stick to a plain, basic layout as much as possible.
- My split of configuration files for environments have stayed the same with no changes
Content Structure#
- Directories and subdirectories for each section.
- Make sure each section has a corresponding
index.XX.mdfor static pages or_index.XX.mdfor list pages. This, I think (but am not sure) has fixed my old, nagging issue of page navigation overflowing. I would keep going next in the Talks section for example and when I reached the end, it would show me another entry from some other section. Now the front/back buttons stay restricted to the section they are in.
Archetypes#
- All the archetypes have been slightly tweaked. They now also include a template line for an image. It uses the theme’s
figurefor images.
i18n (Internationalisation)#
- The internationalisation options are easier here. Just defining a term somewhere and then typing it here just works.
Layout Overrides#
RSS#
- Have tweaked the RSS layout. My version is in
layouts/_default/rss.xmlto include the full text of the post, instead of just a summary.
Search#
- This pulls in script and the styles for Pagefind, which I use for searching the blog. Layout is in
layouts/_default/search.html. - Also note, then when working on search locally, first create an index with pagefind and move it to the static folder because our normal way of working is to render it all in memory.
- do a
hugo build - then do
pagefind_extended --site public - then
mv public/pagefind static/pagefind - then
rm -rf public - and then start the hugo server like we normally do
- do a
Littlefoot#
- Footnotes are powered by Littlefoot. Have used
layouts/partials/extend-footer.htmlto pull in the Littlefoot script andlayouts/partials/extend-footer.htmlto pull in the CSS.
Redirect#
- An old redirect template to redirect from one section to the other is still in place in the
layouts/redirectdirectory
Shortcodes#
- Most of the old shortcodes made it over. Retired my image and caption shortcodes in favour of using Blowfish’s version. Also created an
hsgalleryshortcode, so that I could continue using my old Hugo Shortcode Gallery to create image galleries. Thegalleryshortcode conflicts with Blowfish’s own, which I don’t like and so won’t use.
Static + Tools#
- Fonts and Littlefoot reside in the
staticstring, along with all my images. - There’s also a
toolsstring which contains the Pagefind binary. This does not get published obviously. But the Forgejo action uses this to generate an index for the site and then sends the whole thing off to the VM.
Themes#
- Contains Blowfish and Hugo Shortcode Gallery, added as
gitsubmodules. I dropped Hugo Admonitions, because Blowfish has them already.
CSS#
All in assets/css/custom.css
- Import fonts: Valkyrie for the site and Source Code Pro for code.
- Tweaked the Janusworx up left on my site, and changed all the nav bar items to use Valkyrie Caps.
- Dark mode links were not contrasty enough. So changed the colour and added an underline on hover.
- Added a class to the figure tag, so I could center the pics I use.
- Added an indent to the numbered list items on the Annual Book List pages, so that the numbers stay under each month.
- Style littlefoot footnotes, so that the button is slightly smaller and higher, and the notes use Valkyrie, along with a couple of other tiny tweaks.
- Style the Blowfish box, and the results. on the search page
- Main thing to note. Use
!important;liberally. Changes don’t always cascade down correctly.
Feedback on this post?
Mail me at feedback at this domain.
P.S. Subscribe to my mailing list!
XX is the language code. I have EN for English and FR for French. So
menus.fr.tomlfor e.g. ↩︎