Add a set of templates to generate an Atom feed!

This commit is contained in:
Eryn Wells 2022-11-03 09:16:25 -07:00
parent e83ba90c62
commit 3ef4c7eb1b
4 changed files with 53 additions and 0 deletions

View file

@ -0,0 +1,28 @@
{{- $pctx := . -}}
{{- if .IsHome -}} {{ $pctx = .Site }} {{- end -}}
{{- $pages := slice -}}
{{- if or $.IsHome $.IsSection -}}
{{- $pages = $pctx.RegularPages -}}
{{- else -}}
{{- $pages = $pctx.Pages -}}
{{- end -}}
{{- $limit := .Site.Config.Services.RSS.Limit -}}
{{- if ge $limit 1 -}} {{- $pages = $pages | first $limit -}} {{- end -}}
{{ printf "<?xml version=\"1.0\" encoding=\"utf-8\" standalone=\"yes\"?>" | safeHTML }}
<feed xmlns="http://www.w3.org/2005/Atom">
<title>{{ .Site.Title }}</title>
<link href="{{ `/feed.xml` | absURL }}" rel="self" />
<link href="{{ .Permalink }}" />
{{ if not .Date.IsZero }}<updated>{{ .Date.Format "2006-01-02T15:04:05-07:00" | safeHTML }}</updated>{{ end }}
<id>{{ .Permalink }}</id>
{{ with .Site.Author.name }}
<author>
<name>{{ . }}</name>
{{ with $.Site.Author.email }}<email>{{ . }}</email>{{ end }}
<uri>{{ $.Site.Home.Permalink }}</uri>
</author>
{{ end }}
<generator version="{{ hugo.Version }}" uri="https://gohugo.io">Hugo {{ hugo.Version }}</generator>
<rights>© {{ now.Year }} Eryn Wells</rights>
{{ range $pages }}{{ .Render "atom_entry" }}{{ end }}
</feed>

View file

@ -0,0 +1,6 @@
<entry>
{{ partial "atom_entry_metadata.xml" . }}
{{- if .Content -}}
{{ `<content type="html"><![CDATA[` | safeHTML }}{{ .Content }}]]></content>
{{- end -}}
</entry>

View file

@ -0,0 +1,11 @@
<title>{{ .Title }}</title>
<id>{{ .Permalink }}</id>
{{ with .Site.Author.name }}<author><name>{{ . }}</name></author>{{ end }}
<published>{{ .Date.Format "2006-01-02T15:04:05-07:00" | safeHTML }}</published>
<updated>{{ .Lastmod.Format "2006-01-02T15:04:05-07:00" | safeHTML }}</updated>
{{- range slice "series" "categories" "tags" -}}
{{- range $.GetTerms . -}}
{{ $scheme := (.Site.GetPage (printf "/%s" .Section)).Permalink }}
<category term="{{ .Name }}" scheme="{{ $scheme }}" label="{{ .Title }}" />
{{- end -}}
{{- end -}}

View file

@ -0,0 +1,8 @@
{{- $thumbnail := partial "images/photo_thumbnail.html" . -}}
<entry>
{{ partial "atom_entry_metadata.xml" . }}
<link rel="enclosure" href="{{ $thumbnail.Permalink }}" type="{{ $thumbnail.MediaType }}" length="{{ len $thumbnail.Content }}" />
{{ if .Content }}
{{ `<content type="html"><![CDATA[` | safeHTML }}{{ .Content }}]]></content>
{{ end }}
</entry>