<feed xmlns='http://www.w3.org/2005/Atom'>
<title>hugo-theme-journal/layouts/home.atom.xml, 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>Drop whitespace trimming from HTML and XML templates</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=93831052e8ba9537d47474e1f8dbf04d9eceb9b0dff214ce422fcafe1ffaecac'/>
<id>urn:sha256:93831052e8ba9537d47474e1f8dbf04d9eceb9b0dff214ce422fcafe1ffaecac</id>
<content type='text'>
Whitespace has no effect on the HTML and Atom output, so the trim
markers on nearly every action in those templates bought nothing and
made them harder to read and to edit: a maintainer had to carry the
markers along with the change. The markers are load-bearing in the
gemtext templates alone, where output whitespace is the formatting.

Remove them from the HTML and Atom templates. The audio partial keeps
its markers, since the gemtext single template uses it too. The two
markup render hooks keep theirs as well, because their output is
spliced inline into prose, where the newlines an untrimmed hook emits
render as a space before the punctuation that follows a link.

The Atom templates compute their author and entry variables before
emitting anything, so untrimmed they put blank lines ahead of the XML
declaration and left every feed malformed. Emit the declaration first
instead; whitespace is allowed after it but not before it.

The example site builds byte-identical gemtext and content-identical
feeds, and its HTML differs only by a space after a "p" start tag that
the whitespace processing model drops.

Co-Authored-By: Claude Opus 5 &lt;noreply@anthropic.com&gt;
</content>
</entry>
<entry>
<title>Order feeds by publish date rather than date</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=e1bcf44b88116494b3f720570d2bf822c5f4c82ecef13954df9645abed963bcc'/>
<id>urn:sha256:e1bcf44b88116494b3f720570d2bf822c5f4c82ecef13954df9645abed963bcc</id>
<content type='text'>
Every listing in the theme is built from .PublishDate, but the feeds
timestamped entries with .Date and left them in Hugo's default order.
An entry that set both front matter keys was therefore advertised to
readers with a different date, and potentially in a different order,
than it appeared in on the site.

Co-Authored-By: Claude Opus 5 &lt;noreply@anthropic.com&gt;
</content>
</entry>
<entry>
<title>Limit home feeds to 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=17c300ebd76f9f849fcde61cbdf2049a0a52d75b1139d7ad8d8666a6a0b00f17'/>
<id>urn:sha256:17c300ebd76f9f849fcde61cbdf2049a0a52d75b1139d7ad8d8666a6a0b00f17</id>
<content type='text'>
The homepage lists only pages in the "entry" section, but its feeds
ranged over every regular page. Standalone pages such as an about page
were therefore published to subscribers while never appearing on the
homepage itself.

Apply the same section filter the homepage templates use, so the feed
and the page it describes agree on what an entry is.

Co-Authored-By: Claude Opus 5 &lt;noreply@anthropic.com&gt;
</content>
</entry>
<entry>
<title>Error on generating Atom feeds without an author</title>
<updated>2026-09-19T20:06:40Z</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=0dc2dc8ad469797ce87fdeceae6af63a11ba996718dd335ecb0633a50577d627'/>
<id>urn:sha256:0dc2dc8ad469797ce87fdeceae6af63a11ba996718dd335ecb0633a50577d627</id>
<content type='text'>
RFC 4287 requires every feed to carry an atom:author unless all of its
entries carry one. Entries here never do, and the feed-level author was
emitted only when params.author was set, so any site that did not set it
published feeds that no conforming validator accepts.

Co-Authored-By: Claude Opus 5 &lt;noreply@anthropic.com&gt;
</content>
</entry>
<entry>
<title>Fix build failure when RSS limit is unset</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=f7010449afad2fea6da148330d201529ccc2d65ce50e31083d605c5733c4afa2'/>
<id>urn:sha256:f7010449afad2fea6da148330d201529ccc2d65ce50e31083d605c5733c4afa2</id>
<content type='text'>
Hugo's default for services.rss.limit is -1 (unlimited), and passing a
negative length to "first" aborts the build with "sequence length must
be non-negative". Every feed template did this unconditionally, so any
site that did not explicitly set services.rss.limit failed to build at
all, rather than degrading to an unlimited feed.

Only apply "first" when a positive limit is configured, which is the
same guard Hugo's own internal RSS template uses.

Co-Authored-By: Claude Opus 5 &lt;noreply@anthropic.com&gt;
</content>
</entry>
<entry>
<title>Remove support for deprecated key "site.Author"</title>
<updated>2025-07-27T00: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=3905c06481e979f9fe9e1e89de4ae35ab62bf2b7e7c906ec6cdc10d9b9c084ac'/>
<id>urn:sha256:3905c06481e979f9fe9e1e89de4ae35ab62bf2b7e7c906ec6cdc10d9b9c084ac</id>
<content type='text'>
This Hugo theme no longer supports the Hugo versions that can utilize
the key "site.Author", so this code never executes.
</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>
