<feed xmlns='http://www.w3.org/2005/Atom'>
<title>hugo-theme-journal/layouts/home.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-20T00:00:00Z</updated>
<entry>
<title>Link the tag list from the homepage</title>
<updated>2026-09-20T00:00:00Z</updated>
<author>
<name>Nicholas Johnson</name>
<email></email>
</author>
<published>2026-09-20T00:00:00Z</published>
<link rel='alternate' type='text/html' href='https://git.nicholasjohnson.ch/hugo-theme-journal/commit/?id=8796113e6933d54710e8534264710f6797e0fda8325783c9052d4b7024a80301'/>
<id>urn:sha256:8796113e6933d54710e8534264710f6797e0fda8325783c9052d4b7024a80301</id>
<content type='text'>
Tags reach a dead end in gemtext. The entry metadata names them, but a
gemtext link must occupy a whole line, so the names are plain text and
the tag pages the theme generates cannot be reached from the homepage
at all. The web homepage links each entry's own tags inline, yet
neither format links the tag list itself, so a site had to add it to
the navigation links by hand.

Add a tags section to both homepage templates, holding a single link to
the taxonomy list page, and place it between the navigation links and
the feed. One link rather than one per term keeps the homepage short
however many tags a site accumulates, and keeps the two output formats
in step.

Render it only when the taxonomy page exists and has terms, so that a
site whose entries carry no tags, or which disables the taxonomy kinds
outright, gains no heading and no dead link.

The link is labelled from a new "tagList" string rather than reusing
"tags", which would have read as a link named after the heading above
it. As elsewhere in the theme, the taxonomy is found by lowercasing the
"tags" string, so a translated site finds its own taxonomy: an example
site built in Spanish links "Lista de etiquetas" under "Etiquetas".

Co-Authored-By: Claude Opus 5 &lt;noreply@anthropic.com&gt;
</content>
</entry>
<entry>
<title>Link the homepage feed from the homepage</title>
<updated>2026-09-20T00:00:00Z</updated>
<author>
<name>Nicholas Johnson</name>
<email></email>
</author>
<published>2026-09-20T00:00:00Z</published>
<link rel='alternate' type='text/html' href='https://git.nicholasjohnson.ch/hugo-theme-journal/commit/?id=b2e2ebef4f5f304884cbf86e73a000d6ee2d0a32a421e5aa55662a2255f7e364'/>
<id>urn:sha256:b2e2ebef4f5f304884cbf86e73a000d6ee2d0a32a421e5aa55662a2255f7e364</id>
<content type='text'>
The homepage was the one listing page with a feed but no link to it, so
a reader could only find it through the autodiscovery element in the
document head, which the capsule has no equivalent of. Sites worked
around this by adding the feed to the navigation links by hand.

Add a feeds section to both homepage templates, modelled on the one the
taxonomy, term and section templates carry, and place it below the
navigation links and above the entry list. As on those pages, it is
rendered only when the home kind lists the Atom output format, so a
site that omits the format gains nothing to link.

The example site's homepage gains the section in both output formats
and is otherwise byte-identical, as are the pages of every other kind.

Co-Authored-By: Claude Opus 5 &lt;noreply@anthropic.com&gt;
</content>
</entry>
<entry>
<title>End every template file with a newline</title>
<updated>2026-09-20T00:00:00Z</updated>
<author>
<name>Nicholas Johnson</name>
<email></email>
</author>
<published>2026-09-20T00:00:00Z</published>
<link rel='alternate' type='text/html' href='https://git.nicholasjohnson.ch/hugo-theme-journal/commit/?id=a221ae3c6f8da11b12eea4246f5792123c501f221f0e708456c0a5dd24c8d8a0'/>
<id>urn:sha256:a221ae3c6f8da11b12eea4246f5792123c501f221f0e708456c0a5dd24c8d8a0</id>
<content type='text'>
Fifteen templates ended without a final newline, so they were not text
files by the POSIX definition: tools that read whole lines, including
sed, wc -l, read and shells' command substitution, drop or mangle the
last line, and diffs of them carry a "\ No newline at end of file"
marker that hides which side changed.

Add the newline. The gemtext output may not change, so the four
templates whose last action is emitted verbatim into a capsule page
trim it away again with "-}}". The templates that end by closing a
define block need no marker, since the newline then falls outside the
block and is never executed, as section.gmi and single.gmi already
showed.

The capsule builds byte-identical gemtext and the feeds are unchanged.
Web pages gain the trailing newline their templates now have, which
ends the generated HTML with an EOL too.

Co-Authored-By: Claude Opus 5 &lt;noreply@anthropic.com&gt;
</content>
</entry>
<entry>
<title>Fix empty entry heading on sites without journal entries</title>
<updated>2026-09-19T20:06:44Z</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=fde870a4c5e9692b15495c3de8228a45dbd5d4c960d01d32b87641a7e5465c99'/>
<id>urn:sha256:fde870a4c5e9692b15495c3de8228a45dbd5d4c960d01d32b87641a7e5465c99</id>
<content type='text'>
The "Journal Entries" heading was guarded by .Site.RegularPages while
the list below it was filtered to the "entry" section. A site with pages
but no entries rendered the heading with nothing under it.

Guard on the filtered collection instead. This also drops the .ByTitle
sort, which was immediately discarded by the .ByPublishDate.Reverse
that followed it.

Co-Authored-By: Claude Opus 5 &lt;noreply@anthropic.com&gt;
</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>
