aboutsummaryrefslogtreecommitdiff
path: root/layouts/_partials/head.html
Commit message (Collapse)AuthorAge
* End every template file with a newlineNicholas Johnson16 hours
| | | | | | | | | | | | | | | | | | | | | 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 <noreply@anthropic.com>
* Drop whitespace trimming from HTML and XML templatesNicholas Johnson16 hours
| | | | | | | | | | | | | | | | | | | | | | | | | 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 <noreply@anthropic.com>
* Handle missing optional site files gracefullyNicholas Johnson17 hours
| | | | | | | | | | | | | | Two site files the theme reads were assumed to exist. A site without templates/logo.txt got an empty preformatted block at the top of every page in both output formats, styled with the logo's margins, rather than no logo at all. A typo in params.custom_css produced a nil pointer error naming only the template line, since the result of resources.Get was used without checking it. Skip the header entirely when there is no logo, and report a missing stylesheet by name. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
* Include the site title in page titlesNicholas Johnson20 hours
| | | | | | | | | | | Entry and taxonomy pages set the document title to the page title on its own, so a bookmark, a browser tab or a search result gave no indication of which site the page belonged to. Append the site title everywhere except the homepage, where the two are already the same. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
* Advertise Atom feeds to browsers and readersNicholas Johnson20 hours
| | | | | | | | | | | | The feeds were only reachable by following the visible link on a taxonomy or term page, and the homepage did not link to its feed at all. Without a rel="alternate" element in the document head, feed readers and browser extensions cannot discover a feed from the page it belongs to. Emit the link on any page that has an Atom output format, so each page advertises its own feed rather than a hardcoded site-wide one. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
* Minify and fingerprint CSS stylesheetNicholas Johnson2026-09-06
| | | | This improves page performance and load times.
* Migrate fully to Hugo's new template systemNicholas Johnson2025-07-26
This was the only way I could get term pages to consistently render correctly.