diff --git a/layouts/partials/rss/pages.html b/layouts/partials/rss/pages.html new file mode 100644 index 00000000..cfe0bcb7 --- /dev/null +++ b/layouts/partials/rss/pages.html @@ -0,0 +1,17 @@ +{{- $pages := .pages | default (slice) -}} +{{- $filtered := slice -}} + +{{- range $page := $pages -}} + {{- if isset $page.Params "date" -}} + {{- $frontmatter := "" -}} + {{- with $page.File -}} + {{- $source := readFile (printf "content/%s" .Path) -}} + {{- $frontmatter = delimit (findRE `(?s)^---\r?\n.*?\r?\n---` $source 1) "" -}} + {{- end -}} + {{- if gt (len (findRE `(?m)^date:\s*['"]?\d{4}-\d{2}-\d{2}[ T]\d{2}:\d{2}:\d{2}['"]?\s*$` $frontmatter 1)) 0 -}} + {{- $filtered = $filtered | append $page -}} + {{- end -}} + {{- end -}} +{{- end -}} + +{{- return $filtered -}} diff --git a/themes/2026/layouts/index.rss.xml b/themes/2026/layouts/index.rss.xml index ec602f07..a2bdbc38 100644 --- a/themes/2026/layouts/index.rss.xml +++ b/themes/2026/layouts/index.rss.xml @@ -20,7 +20,8 @@ {{- $pages = $pctx.Pages -}} {{- end -}} -{{- $pages = $pages.ByLastmod.Reverse -}} +{{- $pages = partial "rss/pages.html" (dict "pages" $pages) -}} +{{- $pages = $pages.ByPublishDate.Reverse -}} {{- $limit := .Site.Config.Services.RSS.Limit -}} {{- if ge $limit 1 -}} {{- $pages = first $limit $pages -}} @@ -39,8 +40,8 @@ {{ site.Language.LanguageCode }}{{ with $authorEmail }} {{.}}{{ with $authorName }} ({{ . }}){{ end }}{{ end }}{{ with $authorEmail }} {{ . }}{{ with $authorName }} ({{ . }}){{ end }}{{ end }}{{ with .Site.Copyright }} - {{ . }}{{ end }}{{ if not .Date.IsZero }} - {{ (index $pages.ByLastmod.Reverse 0).Lastmod.Format "Mon, 02 Jan 2006 15:04:05 -0700" | safeHTML }}{{ end }} + {{ . }}{{ end }}{{ if gt (len $pages) 0 }} + {{ (index $pages 0).PublishDate.Format "Mon, 02 Jan 2006 15:04:05 -0700" | safeHTML }}{{ end }} {{- with .OutputFormats.Get "RSS" }} {{ printf "" .Permalink .MediaType | safeHTML }} {{- end }} diff --git a/themes/42/layouts/index.rss.xml b/themes/42/layouts/index.rss.xml index 24eaa906..f84b82e6 100644 --- a/themes/42/layouts/index.rss.xml +++ b/themes/42/layouts/index.rss.xml @@ -20,7 +20,8 @@ {{- $pages = $pctx.Pages }} {{- end }} -{{- $pages = $pages.ByLastmod.Reverse }} +{{- $pages = partial "rss/pages.html" (dict "pages" $pages) }} +{{- $pages = $pages.ByPublishDate.Reverse }} {{- $limit := .Site.Config.Services.RSS.Limit }} {{- if ge $limit 1 }} {{- $pages = first $limit $pages }} @@ -39,8 +40,8 @@ {{ site.Language.LanguageCode }}{{ with $authorEmail }} {{.}}{{ with $authorName }} ({{ . }}){{ end }}{{ end }}{{ with $authorEmail }} {{ . }}{{ with $authorName }} ({{ . }}){{ end }}{{ end }}{{ with .Site.Copyright }} - {{ . }}{{ end }}{{ if not .Date.IsZero }} - {{ (index $pages.ByLastmod.Reverse 0).Lastmod.Format "Mon, 02 Jan 2006 15:04:05 -0700" | safeHTML }}{{ end }} + {{ . }}{{ end }}{{ if gt (len $pages) 0 }} + {{ (index $pages 0).PublishDate.Format "Mon, 02 Jan 2006 15:04:05 -0700" | safeHTML }}{{ end }} {{- with .OutputFormats.Get "RSS" }} {{ printf "" .Permalink .MediaType | safeHTML }} {{- end }}