aboutsummaryrefslogtreecommitdiff
path: root/layouts
diff options
context:
space:
mode:
authorNicholas Johnson <>2026-09-20 00:00:00 +0000
committerNicholas Johnson <>2026-09-20 00:00:00 +0000
commit9f3a9875caaded223901896f5302731d825cc0e77b54b45c2eab670f6e226b40 (patch)
treee36a09220dac10cdd7c9f84bf58a3e8c95949d875e656d6c4b7f34acb3e1e997 /layouts
parent708309f9c25dd69d85833edf410a7a777fdf056ebdf6042f3539520313960452 (diff)
downloadhugo-theme-journal-9f3a9875caaded223901896f5302731d825cc0e77b54b45c2eab670f6e226b40.tar.gz
hugo-theme-journal-9f3a9875caaded223901896f5302731d825cc0e77b54b45c2eab670f6e226b40.zip
Add Atom feeds for sections
Sections were the one listing kind without a feed of their own, though the section templates already linked one whenever the output format was configured. Add the two feed templates, modelled on the taxonomy and term ones, and turn the format on for sections in the example site. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Diffstat (limited to 'layouts')
-rw-r--r--layouts/section.atom.xml53
-rw-r--r--layouts/section.gemini_atom.xml52
2 files changed, 105 insertions, 0 deletions
diff --git a/layouts/section.atom.xml b/layouts/section.atom.xml
new file mode 100644
index 0000000..689c70d
--- /dev/null
+++ b/layouts/section.atom.xml
@@ -0,0 +1,53 @@
+{{ "<?xml version=\"1.0\" encoding=\"UTF-8\"?>" | safeHTML }}
+{{/* The XML declaration is emitted before anything else, including the
+ variables below, since whitespace may not precede it. */}}
+{{ $authorName := "" }}
+{{ with site.Params.author }}
+ {{ if reflect.IsMap . }}
+ {{ with .name }}
+ {{ $authorName = . }}
+ {{ end }}
+ {{ else }}
+ {{ $authorName = . }}
+ {{ end }}
+{{ end }}
+{{ if not $authorName }}
+ {{ errorf "Missing author" }}
+{{ end }}
+
+{{ $authorEmail := "" }}
+{{ with site.Params.author }}
+ {{ if reflect.IsMap . }}
+ {{ with .email }}
+ {{ $authorEmail = . }}
+ {{ end }}
+ {{ end }}
+{{ end }}
+
+{{ $pages := .Pages.ByPublishDate.Reverse }}
+{{ $limit := .Site.Config.Services.RSS.Limit }}
+{{ if ge $limit 1 }}
+{{ $pages = first $limit $pages }}
+{{ end }}
+<feed xmlns="http://www.w3.org/2005/Atom">
+ <id>{{ .Permalink }}</id>
+ <title>{{ .Site.Title }}</title>
+ <updated>{{ .PublishDate.Format "2006-01-02T15:04:05-0700" | safeHTML }}</updated>
+ <link href="{{ .Permalink }}atom.xml" rel="self" />
+ <link href="{{ .Permalink }}" rel="alternate" />
+ <author>
+ <name>{{ $authorName }}</name>
+ {{ with $authorEmail }}
+ <email>{{ . }}</email>{{ end }}
+ </author>
+ <generator>Hugo -- gohugo.io</generator>
+ <rights type="html">{{ replace .Site.Copyright "{currentYear}" (now.Format "2006") }}</rights>
+ <subtitle>{{ .Site.Params.Description }}</subtitle>{{ range $pages }}
+ <entry>
+ <id>{{ .Permalink }}</id>
+ <title type="html">{{ .Title }}</title>
+ <updated>{{ .PublishDate.Format "2006-01-02T15:04:05-0700" | safeHTML }}</updated>
+ <link href="{{ .Permalink }}" />
+ <content type="html">{{ .Content | html }}</content>
+ </entry>{{ end }}
+</feed>
diff --git a/layouts/section.gemini_atom.xml b/layouts/section.gemini_atom.xml
new file mode 100644
index 0000000..6425e31
--- /dev/null
+++ b/layouts/section.gemini_atom.xml
@@ -0,0 +1,52 @@
+{{ "<?xml version=\"1.0\" encoding=\"UTF-8\"?>" | safeHTML }}
+{{/* The XML declaration is emitted before anything else, including the
+ variables below, since whitespace may not precede it. */}}
+{{ $authorName := "" }}
+{{ with site.Params.author }}
+ {{ if reflect.IsMap . }}
+ {{ with .name }}
+ {{ $authorName = . }}
+ {{ end }}
+ {{ else }}
+ {{ $authorName = . }}
+ {{ end }}
+{{ end }}
+{{ if not $authorName }}
+ {{ errorf "Missing author" }}
+{{ end }}
+
+{{ $authorEmail := "" }}
+{{ with site.Params.author }}
+ {{ if reflect.IsMap . }}
+ {{ with .email }}
+ {{ $authorEmail = . }}
+ {{ end }}
+ {{ end }}
+{{ end }}
+
+{{ $pages := .Pages.ByPublishDate.Reverse }}
+{{ $limit := .Site.Config.Services.RSS.Limit }}
+{{ if ge $limit 1 }}
+{{ $pages = first $limit $pages }}
+{{ end }}
+<feed xmlns="http://www.w3.org/2005/Atom">
+ <id>{{ .Permalink | strings.TrimSuffix "index.gmi" }}</id>
+ <title>{{ .Site.Title }}</title>
+ <updated>{{ .PublishDate.Format "2006-01-02T15:04:05-0700" | safeHTML }}</updated>
+ <link href="{{ .Permalink | replaceRE `index.gmi$` "atom.xml" | safeURL }}" rel="self" />
+ <link href="{{ .Permalink | strings.TrimSuffix "index.gmi" | safeURL }}" rel="alternate" />
+ <author>
+ <name>{{ $authorName }}</name>
+ {{ with $authorEmail }}
+ <email>{{ . }}</email>{{ end }}
+ </author>
+ <generator>Hugo -- gohugo.io</generator>
+ <rights type="html">{{ replace .Site.Copyright "{currentYear}" (now.Format "2006") }}</rights>
+ <subtitle>{{ .Site.Params.Description }}</subtitle>{{ range $pages }}
+ <entry>
+ <id>{{ .Permalink | strings.TrimSuffix "index.gmi" }}</id>
+ <title>{{ .Title }}</title>
+ <updated>{{ .PublishDate.Format "2006-01-02T15:04:05-0700" | safeHTML }}</updated>
+ <link href="{{ .Permalink | strings.TrimSuffix "index.gmi" | safeURL }}" rel="alternate" />
+ </entry>{{ end }}
+</feed>