<feed xmlns='http://www.w3.org/2005/Atom'>
<title>hugo-theme-journal/layouts/single.gmi, branch 2026.09.19</title>
<subtitle>Hugo theme for my journal.</subtitle>
<id>https://git.nicholasjohnson.ch/hugo-theme-journal/atom?h=2026.09.19</id>
<link rel='self' href='https://git.nicholasjohnson.ch/hugo-theme-journal/atom?h=2026.09.19'/>
<link rel='alternate' type='text/html' href='https://git.nicholasjohnson.ch/hugo-theme-journal/'/>
<updated>2026-09-19T22:26:10Z</updated>
<entry>
<title>Ignore blank lines between front matter and entry body</title>
<updated>2026-09-19T22:26:10Z</updated>
<author>
<name>Nicholas Johnson</name>
<email></email>
</author>
<published>2026-09-18T00:00:00Z</published>
<link rel='alternate' type='text/html' href='https://git.nicholasjohnson.ch/hugo-theme-journal/commit/?id=40d957cfbe3c4791145a35cba1004a6ea30b45ac9e0dbc4eee3577c2d981ee04'/>
<id>urn:sha256:40d957cfbe3c4791145a35cba1004a6ea30b45ac9e0dbc4eee3577c2d981ee04</id>
<content type='text'>
.RawContent keeps the newline that follows the closing front matter
delimiter, and only trailing whitespace was being chomped. An entry
written with a blank line there, which is what the entry archetype
produces, got one more blank line under its pageinfo line in the
gemtext than an entry written without one.

The same leading newline also hid a heading on the first line from the
check that decides whether to add a separating newline, since that
pattern is anchored to the start of the content.

Co-Authored-By: Claude Opus 5 &lt;noreply@anthropic.com&gt;
</content>
</entry>
<entry>
<title>Choose the best audio version of an entry</title>
<updated>2026-09-19T20:15:23Z</updated>
<author>
<name>Nicholas Johnson</name>
<email></email>
</author>
<published>2026-09-18T00:00:00Z</published>
<link rel='alternate' type='text/html' href='https://git.nicholasjohnson.ch/hugo-theme-journal/commit/?id=424afe0f8fed829758cc4d09722b4cfd98268734f82b799962369478389cf5dc'/>
<id>urn:sha256:424afe0f8fed829758cc4d09722b4cfd98268734f82b799962369478389cf5dc</id>
<content type='text'>
Both templates took element 0 of the entry's audio resources, so an
entry carrying more than one encoding used whichever filename sorted
first, with no way to express a preference. An entry with a careful
encoding and an mp3 beside it would commonly have offered the mp3.

Order the resources by how they sound instead. Public listening tests
put Opus ahead of the field at the bitrates spoken word uses, with
Vorbis and AAC close behind it and MP3 last; the lossless formats come
after the lossy ones rather than before, since a browser that can play
FLAC would otherwise fetch several times the bytes for no audible gain.
Formats the theme does not rank keep Hugo's own order at the end.

The capsule links the first of them, since a Gemini client cannot
choose between sources and a reader wants one file to fetch. The
website offers them all as the alternative sources that the audio
element exists to choose between, best first, so a browser plays the
best encoding it understands.

Hugo reports .opus, .oga and .ogg alike as audio/ogg, so the ordering
keys off the file extension rather than the media type.

Co-Authored-By: Claude Opus 5 &lt;noreply@anthropic.com&gt;
</content>
</entry>
<entry>
<title>Fix preformatted text opening an entry being treated as prose</title>
<updated>2026-09-18T00:00:00Z</updated>
<author>
<name>Nicholas Johnson</name>
<email></email>
</author>
<published>2026-09-18T00:00:00Z</published>
<link rel='alternate' type='text/html' href='https://git.nicholasjohnson.ch/hugo-theme-journal/commit/?id=7a51b9a97b2d618e6b006f1a3b6a0ebd4acd51888af95e670662cf5655fffb3a'/>
<id>urn:sha256:7a51b9a97b2d618e6b006f1a3b6a0ebd4acd51888af95e670662cf5655fffb3a</id>
<content type='text'>
The chunking regex required at least one character before a preformatted
block, so a block starting on the first line of an entry could never
match the preformatted branch and fell through to the prose branch. Its
contents were then run through the prose substitutions: asterisks were
stripped, ordered list items were rewritten as unordered ones and links
were turned into references, inside text that must be reproduced
verbatim.

Allow the leading segment to be empty. Blocks elsewhere in an entry,
multiple blocks and reference numbering are unaffected.

Co-Authored-By: Claude Opus 5 &lt;noreply@anthropic.com&gt;
</content>
</entry>
<entry>
<title>Add audio support for entries on capsule</title>
<updated>2026-09-06T00:00:00Z</updated>
<author>
<name>Nicholas Johnson</name>
<email></email>
</author>
<published>2026-09-06T00:00:00Z</published>
<link rel='alternate' type='text/html' href='https://git.nicholasjohnson.ch/hugo-theme-journal/commit/?id=3630afdfdf5f69343d1d4a85e4888b904c9d682984ee9fd9eaefa6b822661572'/>
<id>urn:sha256:3630afdfdf5f69343d1d4a85e4888b904c9d682984ee9fd9eaefa6b822661572</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Move pageinfo below heading for capsule</title>
<updated>2026-09-06T00:00:00Z</updated>
<author>
<name>Nicholas Johnson</name>
<email></email>
</author>
<published>2026-09-06T00:00:00Z</published>
<link rel='alternate' type='text/html' href='https://git.nicholasjohnson.ch/hugo-theme-journal/commit/?id=f017963dd7f40371bcfe6b75446e8c69d651b1759ea194b11ec22aa1c0d70e05'/>
<id>urn:sha256:f017963dd7f40371bcfe6b75446e8c69d651b1759ea194b11ec22aa1c0d70e05</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Replace ".Name" with ".Title" for entry headings</title>
<updated>2026-09-06T00:00:00Z</updated>
<author>
<name>Nicholas Johnson</name>
<email></email>
</author>
<published>2026-09-05T00:00:00Z</published>
<link rel='alternate' type='text/html' href='https://git.nicholasjohnson.ch/hugo-theme-journal/commit/?id=ed01d97ca07622a4adf87fc4e806c083c7d624b2ce463eef588149c86110077c'/>
<id>urn:sha256:ed01d97ca07622a4adf87fc4e806c083c7d624b2ce463eef588149c86110077c</id>
<content type='text'>
I'm not sure if this change makes a difference, but .Title seems to be
the canonical option in this context.
</content>
</entry>
<entry>
<title>Migrate fully to Hugo's new template system</title>
<updated>2025-07-26T00:00:00Z</updated>
<author>
<name>Nicholas Johnson</name>
<email></email>
</author>
<published>2025-07-26T00:00:00Z</published>
<link rel='alternate' type='text/html' href='https://git.nicholasjohnson.ch/hugo-theme-journal/commit/?id=9bb9989fca490bfac69ea4387ccae1e9ec3ec23cf7f47a401e241ee43562f8a3'/>
<id>urn:sha256:9bb9989fca490bfac69ea4387ccae1e9ec3ec23cf7f47a401e241ee43562f8a3</id>
<content type='text'>
This was the only way I could get term pages to consistently render
correctly.
</content>
</entry>
</feed>
