commit dfe815f9d256d4c8170a2d5899a89b78e79b7799 parent 81387d7b1f24e4b8301280b4197f08162e8dbaf8 Author: Yohanes Bandung <bandungpenting@gmail.com> Date: Fri, 1 May 2020 20:07:20 +0700 refactor: rss enhancements Diffstat:
| M | layouts/index.rss.xml | | | 13 | +++++++------ |
| A | layouts/notes/rss.xml | | | 43 | +++++++++++++++++++++++++++++++++++++++++++ |
| M | layouts/partials/head/head.html | | | 6 | +++++- |
| A | layouts/posts/rss.xml | | | 41 | +++++++++++++++++++++++++++++++++++++++++ |
4 files changed, 96 insertions(+), 7 deletions(-)
diff --git a/layouts/index.rss.xml b/layouts/index.rss.xml @@ -1,14 +1,16 @@ {{- $pctx := . -}} -{{- if .IsHome -}}{{ $pctx = .Site }}{{- end -}} +{{- if .IsHome -}} + {{ $pctx = .Site }} +{{- end -}} {{- $pages := slice -}} {{- if or $.IsHome $.IsSection -}} -{{- $pages = $pctx.RegularPages -}} + {{- $pages = $pctx.RegularPages -}} {{- else -}} -{{- $pages = $pctx.Pages -}} + {{- $pages = $pctx.Pages -}} {{- end -}} {{- $limit := .Site.Config.Services.RSS.Limit -}} {{- if ge $limit 1 -}} -{{- $pages = $pages | first $limit -}} + {{- $pages = $pages | first $limit -}} {{- end -}} {{- printf "<?xml version=\"1.0\" encoding=\"utf-8\" standalone=\"yes\"?>" | safeHTML }} <rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"> @@ -36,4 +38,4 @@ </item> {{ end }} </channel> -</rss>- \ No newline at end of file +</rss> diff --git a/layouts/notes/rss.xml b/layouts/notes/rss.xml @@ -0,0 +1,43 @@ +{{- $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 }} +<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"> + <channel> + <title>{{ if eq .Title .Site.Title }}{{ .Site.Title }}{{ else }}{{ with .Title }}{{.}} on {{ end }}{{ .Site.Title }}{{ end }}</title> + <link>{{ .Permalink }}</link> + <description>Recent content {{ if ne .Title .Site.Title }}{{ with .Title }}in {{.}} {{ end }}{{ end }}on {{ .Site.Title }}</description> + <generator>Hugo -- gohugo.io</generator>{{ with .Site.LanguageCode }} + <language>{{.}}</language>{{end}}{{ with .Site.Author.email }} + <managingEditor>{{.}}{{ with $.Site.Author.name }} ({{.}}){{end}}</managingEditor>{{end}}{{ with .Site.Author.email }} + <webMaster>{{.}}{{ with $.Site.Author.name }} ({{.}}){{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 }} + {{ $dateformat := .Date.Format "2006-01-02 15:04" }} + {{ $idslug := (print $dateformat "-") | urlize }} + {{ range $pages }} + <item> + <title>{{ .Title }}</title> + <link>{{ .Site.BaseURL }}notes/#{{ $idslug }}</link> + <pubDate>{{ .Date.Format "Mon, 02 Jan 2006 15:04:05 -0700" | safeHTML }}</pubDate> + {{ with .Site.Author.email }}<author>{{.}}{{ with $.Site.Author.name }} ({{.}}){{end}}</author>{{end}} + <guid>{{ .Site.BaseURL }}notes/#{{ $idslug }}</guid> + <description>{{ .Content | html }}</description> + </item> + {{ end }} + </channel> +</rss> diff --git a/layouts/partials/head/head.html b/layouts/partials/head/head.html @@ -10,7 +10,11 @@ <link data-hint="Email" title="Email" href="mailto:{{ .Site.Params.Email }}" rel="me" /> <link data-hint="Mastodon" title="Mastodon" href="https://indieweb.social/@ybbond" rel="me" /> -<link type="application/rss+xml" title="RSS" href="/index.xml" rel="alternate" /> + +{{ with .OutputFormats.Get "rss" }} + {{ $rssTitle := printf "%s RSS" $.Site.Title }} + {{ printf `<link rel="%s" type="%s" href="%s" title="%s" />` .Rel .MediaType.Type .Permalink $rssTitle | safeHTML }} +{{ end }} <link href="https://micro.blog/indieauth/auth" rel="authorization_endpoint" /> <link href="https://micro.blog/indieauth/token" rel="token_endpoint" /> diff --git a/layouts/posts/rss.xml b/layouts/posts/rss.xml @@ -0,0 +1,41 @@ +{{- $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 }} +<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"> + <channel> + <title>{{ if eq .Title .Site.Title }}{{ .Site.Title }}{{ else }}{{ with .Title }}{{.}} on {{ end }}{{ .Site.Title }}{{ end }}</title> + <link>{{ .Permalink }}</link> + <description>Recent content {{ if ne .Title .Site.Title }}{{ with .Title }}in {{.}} {{ end }}{{ end }}on {{ .Site.Title }}</description> + <generator>Hugo -- gohugo.io</generator>{{ with .Site.LanguageCode }} + <language>{{.}}</language>{{end}}{{ with .Site.Author.email }} + <managingEditor>{{.}}{{ with $.Site.Author.name }} ({{.}}){{end}}</managingEditor>{{end}}{{ with .Site.Author.email }} + <webMaster>{{.}}{{ with $.Site.Author.name }} ({{.}}){{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>{{ .Permalink }}</link> + <pubDate>{{ .Date.Format "Mon, 02 Jan 2006 15:04:05 -0700" | safeHTML }}</pubDate> + {{ with .Site.Author.email }}<author>{{.}}{{ with $.Site.Author.name }} ({{.}}){{end}}</author>{{end}} + <guid>{{ .Permalink }}</guid> + <description>{{ .Content | html }}</description> + </item> + {{ end }} + </channel> +</rss>