1
0
Fork 0
mirror of https://git.sr.ht/~seirdy/seirdy.one synced 2024-11-15 09:52:10 +00:00
seirdy.one/layouts/_default/list.atom.xml
Rohan Kumar f8c8e6ae40
Add summary elements to Atom feeds
Should improve article previews in some readers. This also entailed
swapping out angle-brackets in one description to avoid errors.
2023-11-29 05:10:04 -08:00

101 lines
4.6 KiB
XML

{{- $pages := (where site.RegularPages "Section" .Section) -}}
{{- $period := "daily" -}}
{{- $title := .Section | humanize -}}
{{- if .IsHome -}}
{{- $title = "All content" -}}
{{- $pages = where .Site.RegularPages "Date" "!=" (time "0001-01-01") -}}
{{- $period = "hourly" -}}
{{- end -}}
{{- if eq .Section "notes" -}}
{{- $period = "hourly" -}}
{{- end -}}
{{- $faviconSvg := resources.Get "/favicon.svg" | resources.Fingerprint "md5" -}}
{{- $image := resources.Get "/favicon192.png" | resources.Fingerprint "md5" -}}
{{- $atomLogo := resources.Get "/atom.svg" | resources.Fingerprint "md5" -}}
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<feed
xmlns="http://www.w3.org/2005/Atom"
xml:lang="{{ .Site.LanguageCode }}"
xmlns:activity="http://activitystrea.ms/spec/1.0/"
xmlns:admin="http://webns.net/mvcb/"
xmlns:media="http://search.yahoo.com/mrss/"
xmlns:ostatus="http://ostatus.org/schema/1.0"
xmlns:poco="http://portablecontacts.net/spec/1.0"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
xmlns:thr="http://purl.org/syndication/thread/1.0"
xmlns:webfeeds="http://webfeeds.org/rss/1.0">
<title>{{ $title }} on {{ .Site.Title }}</title>
<subtitle>
{{- if .Params.Description -}}
{{- .Params.Description -}}
{{- else -}}
{{- .Site.Params.Description -}}
{{- end -}}
</subtitle>
<link rel="self" type="application/atom+xml" href="{{ .Permalink }}atom.xml" />
<icon>{{ $faviconSvg.Permalink }}</icon>
<webfeeds:icon>{{ $image.Permalink }}</webfeeds:icon>
<webfeeds:cover>{{ $atomLogo.Permalink }}</webfeeds:cover>
<logo>{{ $atomLogo.Permalink }}</logo>
<webfeeds:accentColor>191919</webfeeds:accentColor>
<webfeeds:related layout="card" target="browser" />
<sy:updatePeriod>{{ $period }}</sy:updatePeriod>
<sy:updateFrequency>2</sy:updateFrequency>
<author>
<activity:object-type>http://activitystrea.ms/schema/1.0/person</activity:object-type>
<poco:preferredUsername>{{ .Site.Author.name }}</poco:preferredUsername>
<poco:displayName>{{ .Site.Author.nick }}</poco:displayName>
<name>{{ .Site.Author.name }}</name>
<email>{{ .Site.Author.email }}</email>
<uri>https://seirdy.one/</uri>
</author>
<admin:errorReportsTo rdf:resource="mailto:{{ .Site.Author.email }}" />
<link rel="license" type="application/rdf+xml" href="https://creativecommons.org/licenses/by-sa/4.0/rdf" />
<updated>{{ now.Format "2006-01-02T15:04:05-07:00" | safeHTML }}</updated>
<generator uri="https://gohugo.io/" version="{{ .Site.Hugo.Version }}">Hugo {{ .Site.Hugo.Version }}</generator>
<id>{{ .Permalink }}</id>
{{ range $pages -}}
{{- if not .Params.Private -}}
<entry>
<title>{{ .Title }}</title>
<link rel="alternate" type="text/html" href="{{ .Permalink }}" />
<id>{{ .Permalink }}</id>
<published>{{ .Date.Format "2006-01-02T15:04:05-07:00" | safeHTML }}</published>
<updated>{{ .Lastmod.Format "2006-01-02T15:04:05-07:00" | safeHTML }}</updated>
<author><name>{{ .Site.Author.name }}</name><uri>https://seirdy.one/</uri></author>
<rights>CC-BY-SA 4.0</rights>
<link rel="license" type="application/rdf+xml" href="https://creativecommons.org/licenses/by-sa/4.0/rdf" />
{{- with .Params.replyURI -}}
<thr:in-reply-to ref="{{ . }}" href="{{ . }}" />
{{- end -}}
{{- with .Params.replyAuthorURI -}}
<link rel="mentioned" ostatus:object-type="http://activitystrea.ms/schema/1.0/person" href="{{ . }}"/>
{{- end -}}
{{- $type := "article" -}}
{{- if eq .Section "notes" -}}
{{- $type = "note" -}}
{{- end -}}
<activity:object-type>http://activitystrea.ms/schema/1.0/{{ $type }}</activity:object-type>
<activity:verb>http://activitystrea.ms/schema/1.0/post</activity:verb>
{{- with .Params.image -}}
{{- $image = resources.Get (printf "/p/%s" . ) | resources.Fingerprint "md5" -}}
{{- end -}}
<media:thumbnail url="{{ $image.Permalink }}" width="{{ $image.Width }}" height="{{ $image.Height }}" />
{{ with .Description -}}
<summary type="text">{{ . }}</summary>
{{- end }}
<content type="xhtml" xml:base="{{ .Permalink }}">
<div xmlns="http://www.w3.org/1999/xhtml">
{{- if .Params.replyURI -}}
{{- partial "reply-context" .Params | replaceRE `(?: )?(?:item(type|scope|prop|id|ref)="[^"]*"|class="language-figure")` "" | safeHTML }}
{{- end -}}
{{ partial "processed-content.html" . | replaceRE `(?: )?(?:item(type|scope|prop|id|ref)="[^"]*"|class="language-figure")` "" | replaceRE `<meta content="true" ?/>` "" | safeHTML -}}
</div>
</content>
<slash:comments>{{ .Page.Scratch.Get "webmentionCount" }}</slash:comments>
</entry>
{{ end -}}
{{- end }}
</feed>