aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNicholas Johnson <nick@nicholasjohnson.ch>2023-02-24 00:00:00 +0000
committerNicholas Johnson <nick@nicholasjohnson.ch>2023-02-24 00:00:00 +0000
commitdc89efa0d1ba80e8a7c61ddd2d0d4243cc82e52fb2c9104311b4ba5e2af81ff6 (patch)
tree377e286c42216fe50949c2e53a3c5aecfebf3d60be70a4d800f272370157191a
parent4200dccb4372c7095e151803364c3f34eaa466327a2fc015a7a89065e4742b22 (diff)
Implement term Atom feeds
-rw-r--r--layouts/_default/term.atom.xml22
-rw-r--r--layouts/_default/term.gemini_atom.xml21
-rw-r--r--layouts/_default/term.gmi16
-rw-r--r--layouts/_default/term.html13
-rw-r--r--layouts/index.gmi10
-rw-r--r--layouts/partials/metadata.gmi8
6 files changed, 72 insertions, 18 deletions
diff --git a/layouts/_default/term.atom.xml b/layouts/_default/term.atom.xml
new file mode 100644
index 0000000..c0c9f6e
--- /dev/null
+++ b/layouts/_default/term.atom.xml
@@ -0,0 +1,22 @@
+{{ "<?xml version=\"1.0\" encoding=\"UTF-8\"?>" | safeHTML }}
+<feed xmlns="http://www.w3.org/2005/Atom">
+ <id>{{ .Permalink }}</id>
+ <title>{{ .Site.Title }}</title>
+ <updated>{{ .Date.Format "2006-01-02T15:04:05Z" | safeHTML }}</updated>
+ <link href="{{ .Permalink }}atom.xml" rel="self" />
+ <link href="{{ .Permalink }}" rel="alternate" />
+ <author>
+ <name>{{ .Site.Author.name }}</name>
+ <email>{{ .Site.Author.email }}</email>
+ </author>
+ <generator>Hugo -- gohugo.io</generator>
+ <rights type="html">{{ replace .Site.Copyright "{currentYear}" (now.Format "2006") }}</rights>
+ <subtitle>{{ .Site.Params.Description }}</subtitle>{{ range first .Site.Config.Services.RSS.Limit .Data.Pages }}
+ <entry>
+ <id>{{ .Permalink }}</id>
+ <title type="html">{{ .Title }}</title>
+ <updated>{{ .Date.Format "2006-01-02T15:04:05Z" | safeHTML }}</updated>
+ <link href="{{ .Permalink }}" />
+ <content type="html">{{ .Content | html }}</content>
+ </entry>{{ end }}
+</feed>
diff --git a/layouts/_default/term.gemini_atom.xml b/layouts/_default/term.gemini_atom.xml
new file mode 100644
index 0000000..85ff034
--- /dev/null
+++ b/layouts/_default/term.gemini_atom.xml
@@ -0,0 +1,21 @@
+{{ "<?xml version=\"1.0\" encoding=\"UTF-8\"?>" | safeHTML }}
+<feed xmlns="http://www.w3.org/2005/Atom">
+ <id>{{ replace .Permalink "https://" "gemini://" }}</id>
+ <title>{{ .Site.Title }}</title>
+ <updated>{{ .Date.Format "2006-01-02T15:04:05Z" | safeHTML }}</updated>
+ <link href="{{ replace .Permalink "https://" "gemini://" | safeURL }}atom.xml" rel="self" />
+ <link href="{{ replace .Permalink "https://" "gemini://" | safeURL }}" rel="alternate" />
+ <author>
+ <name>{{ .Site.Author.name }}</name>
+ <email>{{ .Site.Author.email }}</email>
+ </author>
+ <generator>Hugo -- gohugo.io</generator>
+ <rights type="html">{{ replace .Site.Copyright "{currentYear}" (now.Format "2006") }}</rights>
+ <subtitle>{{ .Site.Params.Description }}</subtitle>{{ range first .Site.Config.Services.RSS.Limit .Data.Pages }}
+ <entry>
+ <id>{{ replace .Permalink "https://" "gemini://" | safeURL }}</id>
+ <title>{{ .Title }}</title>
+ <updated>{{ .Date.Format "2006-01-02T15:04:05Z" | safeHTML }}</updated>
+ <link href="{{ replace .Permalink "https://" "gemini://" | safeURL }}" rel="alternate" />
+ </entry>{{ end }}
+</feed>
diff --git a/layouts/_default/term.gmi b/layouts/_default/term.gmi
index 8c47843..4beb9ea 100644
--- a/layouts/_default/term.gmi
+++ b/layouts/_default/term.gmi
@@ -2,8 +2,18 @@
=> / {{ emojify ":link:" | safeHTML }} Return to homepage
-# All entries for {{ .Type | singularize | safeHTML }} "{{ .Title | safeHTML }}"
-{{ range .Data.Pages }}
-=> {{ .RelPermalink }} {{ emojify ":link:" | safeHTML }} {{ .Title | safeHTML }}
+# {{ .Type | singularize | humanize | safeHTML }} "{{ .Title | safeHTML }}"
+## Feeds
+=> {{ .RelPermalink | replaceRE `(?m)index.gmi$` "atom.xml" | safeHTML }} {{ emojify ":link:" | safeHTML }} Atom Feed
+
+## Journal Entries
+{{ $entriesMinusOne := sub (len (where .Site.RegularPages.ByTitle "Section" "entry").ByPublishDate.Reverse) 1 }}
+{{- range first $entriesMinusOne .Data.Pages.ByPublishDate.Reverse }}
+{{- partial "metadata.gmi" . }}
+{{ end }}
+{{- if gt (len .Data.Pages) 1 }}
+
+{{- range last 1 .Data.Pages.ByPublishDate.Reverse }}
+{{- partial "metadata.gmi" . }}{{ end }}
{{- end }}
{{- end }}
diff --git a/layouts/_default/term.html b/layouts/_default/term.html
index 0f1defc..4b69ebe 100644
--- a/layouts/_default/term.html
+++ b/layouts/_default/term.html
@@ -3,11 +3,12 @@
<p>{{ emojify ":link:" | safeHTML }}&nbsp;<a class="link" href="/" rel="noreferrer">Return to homepage</a></p>
</nav>
<main>
- <h1>All entries for {{ .Type | singularize }} "{{ .Title }}"</h1>
- <ul class="list">
- {{- range .Data.Pages }}
- <li class="list__item">{{ emojify ":link:" | safeHTML }}&nbsp;<a class="link" href="{{ .RelPermalink }}" rel="noreferrer">{{ .Title }}</a></li>
- {{- end }}
- </ul>
+ <h1>{{ .Type | singularize | humanize }} "{{ .Title }}"</h1>
+ <h2>Feeds</h2>
+ <p><a class="link" href="{{ print .RelPermalink "atom.xml" }}" rel="noreferrer"> {{ emojify ":link:" | safeHTML }}&nbsp;Atom Feed</a></p>
+ <h2>Journal Entries</h2>
+ {{- range .Data.Pages.ByPublishDate.Reverse }}
+ {{ partial "metadata.html" . -}}
+ {{- end -}}
</main>
{{- end }}
diff --git a/layouts/index.gmi b/layouts/index.gmi
index ae45ded..e629fe7 100644
--- a/layouts/index.gmi
+++ b/layouts/index.gmi
@@ -7,4 +7,12 @@
=> {{ .URL }} {{ emojify ":link:" | safeHTML }} {{ .Name | safeHTML }}
{{ end }}
## Journal Entries
-{{ partial "metadata.gmi" . }}{{ end }}
+{{ $entriesMinusOne := sub (len (where .Site.RegularPages.ByTitle "Section" "entry").ByPublishDate.Reverse) 1 }}
+{{- range first $entriesMinusOne (where .Site.RegularPages.ByTitle "Section" "entry").ByPublishDate.Reverse }}
+{{- partial "metadata.gmi" . }}
+{{ end }}{{- if gt (len .Data.Pages) 1 }}
+
+{{- range last 1 (where .Site.RegularPages.ByTitle "Section" "entry").ByPublishDate.Reverse }}
+{{- partial "metadata.gmi" . }}{{ end }}
+{{- end }}
+{{- end }}
diff --git a/layouts/partials/metadata.gmi b/layouts/partials/metadata.gmi
index c3d7af4..31b1155 100644
--- a/layouts/partials/metadata.gmi
+++ b/layouts/partials/metadata.gmi
@@ -1,10 +1,2 @@
-{{ $entriesMinusOne := sub (len (where .Site.RegularPages.ByTitle "Section" "entry").ByPublishDate.Reverse) 1 }}
-{{- range first $entriesMinusOne (where .Site.RegularPages.ByTitle "Section" "entry").ByPublishDate.Reverse }}
{{- partial "pageinfo.gmi" . }}
=> {{ .RelPermalink }} {{ emojify ":link:" | safeHTML }} {{ .Title | safeHTML }}
-
-{{ end }}
-
-{{- range last 1 (where .Site.RegularPages.ByTitle "Section" "entry").ByPublishDate.Reverse }}
-{{- partial "pageinfo.gmi" . }}
-=> {{ .RelPermalink }} {{ emojify ":link:" | safeHTML }} {{ .Title | safeHTML }}{{ end }} \ No newline at end of file