Adjusting postroll RSS/Atom/JSONFeed

This commit is contained in:
Brandon Rozek 2025-04-02 00:00:30 -04:00
parent 6a9e1847d7
commit 9a663b328a
3 changed files with 97 additions and 0 deletions

View file

@ -0,0 +1,12 @@
{
"id": "{{ .Params.url }}",
"url": "{{ .Params.url }}",
"title": {{ .Title | jsonify }},
"authors": ["{{ .Params.author }}"],
{{ $pre := "<p><strong>Brandon's Comment:</strong></p>" }}
{{ $content := .Content }}
{{ $combined := printf "%s%s" $pre $content}}
{{ $combined := $combined | jsonify (dict "noHTMLEscape" true) }}
"content_html": {{ $combined }},
"date_published": "{{ .Date.Format "2006.01.02" }}"
}

View file

@ -0,0 +1,41 @@
{{- $pctx := . -}}
{{- if .IsHome -}}{{ $pctx = .Site }}{{- end -}}
{{- $pages := $pctx.RegularPages -}}
{{- $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 xml:lang="{{ .Site.LanguageCode }}"
xmlns="http://www.w3.org/2005/Atom"
xmlns:activity="http://activitystrea.ms/spec/1.0/"
xmlns:georss="http://www.georss.org/georss"
xmlns:ostatus="http://ostatus.org/schema/1.0"
xmlns:thr="http://purl.org/syndication/thread/1.0"
xml:base="{{ .Permalink }}">
<title>{{ if eq .Title .Site.Title }}{{ .Site.Title }}{{ else }}{{ with .Title }}{{.}} | {{ end }}{{ .Site.Title }}{{ end }}</title>
<id>{{ .Permalink }}</id>
<generator uri="https://gohugo.io">Hugo</generator>
<author>
<uri>{{ .Site.BaseURL }}</uri>
{{ with .Site.Params.Author }}<name>{{.}}</name>{{end}}
</author>
<updated>{{ now.Format "2006-01-02T15:04:05-07:00" | safeHTML }}</updated>
{{ with .OutputFormats.Get "Atom" }}
{{ printf "<atom:link href=%q rel=\"self\" type=%q />" .Permalink .MediaType | safeHTML }}
{{ end }}
{{ range $pages }}
<entry>
<author>
<activity:object-type>http://activitystrea.ms/schema/1.0/person</activity:object-type>
<name>{{ .Params.author }}</name>
</author>
<activity:object-type>http://activitystrea.ms/schema/1.0/article</activity:object-type>
<title>{{ .Title }}</title>
<id>{{ .Params.url }}</id>
{{ printf `<content type="html"><![CDATA[<p><strong>Brandon's Comment:</strong></p>%s]]></description>` .Content | safeHTML }}
<activity:verb>http://activitystrea.ms/schema/1.0/create</activity:verb>
<published>{{ .Date.Format "Mon, 02 Jan 2006 15:04:05 -0700" | safeHTML }}</published>
</entry>
{{ end }}
</feed>

44
layouts/postroll/rss.xml Normal file
View file

@ -0,0 +1,44 @@
{{- $pctx := . -}}
{{- if .IsHome -}}{{ $pctx = .Site }}{{- end -}}
{{- $pages := $pctx.RegularPages -}}
{{- $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 }}
{{- $style := resources.Get "css/pretty-feed-v3.xsl" -}}
{{- printf "<?xml-stylesheet href=%q type=\"text/xsl\"?>" $style.Permalink | safeHTML }}
<rss version="2.0"
xmlns:atom="http://www.w3.org/2005/Atom"
xmlns:content="http://purl.org/rss/1.0/modules/content/">
<channel>
<title>{{ if eq .Title .Site.Title }}{{ .Site.Title }}{{ else }}{{ with .Title }}{{.}} | {{ end }}{{ .Site.Title }}{{ end }}</title>
<link>{{ .Permalink }}</link>
<image>
<title>{{ if eq .Title .Site.Title }}{{ .Site.Title }}{{ else }}{{ with .Title }}{{.}} | {{ end }}{{ .Site.Title }}{{ end }}</title>
<link>{{ .Permalink }}</link>
<url>{{ .Site.BaseURL }}img/{{ .Site.Params.avatar }}</url>
</image>
<description>{{ .Description }}</description>
<generator>Hugo -- gohugo.io</generator>{{ with .Site.LanguageCode }}
<language>{{.}}</language>{{end}}{{ with .Site.Params.email }}
<managingEditor>{{.}}{{ with $.Site.Params.Author }} ({{.}}){{end}}</managingEditor>{{end}}{{ with .Site.Params.email }}
<webMaster>{{.}}{{ with $.Site.Params.Author }} ({{.}}){{end}}</webMaster>{{end}}{{ with .Site.Copyright }}
<copyright>{{.}}</copyright>{{end}}{{ if not .Date.IsZero }}
<lastBuildDate>{{ .Date.Format "Mon, 02 Jan 2006 15:04:05 -0700" | safeHTML }}</lastBuildDate>{{ end }}
{{ with .OutputFormats.Get "RSS" }}
{{ printf "<atom:link href=%q rel=\"self\" type=%q />" .Permalink .MediaType | safeHTML }}
{{ end }}
{{ range $pages }}
<item>
<title>{{ .Title }}</title>
<link>{{ .Params.url }}</link>
<pubDate>{{ .Date.Format "Mon, 02 Jan 2006 15:04:05 -0700" | safeHTML }}</pubDate>
<author>{{ .Params.author }}</author>
<guid>{{ .Params.url }}</guid>
{{ printf `<description><![CDATA[<p><strong>Brandon's Comment:</strong></p>%s]]></description>` .Summary | safeHTML }}
{{ printf `<content:encoded><![CDATA[<p><strong>Brandon's Comment:</strong></p>%s]]></content:encoded>` .Content | safeHTML }}
</item>
{{ end }}
</channel>
</rss>