diff options
| author | Richard Qin <richard.qin.x@gmail.com> | 2026-10-09 02:54:30 +0800 |
|---|---|---|
| committer | Richard Qin <richard.qin.x@gmail.com> | 2026-10-09 02:54:30 +0800 |
| commit | 0535960a7dd37ebf355e44d8819c651c70ffb11f (patch) | |
| tree | 3a407dc80147299149e2eaaa1a5ea71d89bc7706 /layouts | |
| parent | 96eaac9c58c15b8511169f26e573f360ee1714c3 (diff) | |
| download | rhomepage-0535960a7dd37ebf355e44d8819c651c70ffb11f.tar.gz rhomepage-0535960a7dd37ebf355e44d8819c651c70ffb11f.tar.xz | |
Add RSS feed for technical note updates
Signed-off-by: Richard Qin <richard.qin.x@gmail.com>
Diffstat (limited to 'layouts')
| -rw-r--r-- | layouts/baseof.html | 3 | ||||
| -rw-r--r-- | layouts/notes/list.html | 1 | ||||
| -rw-r--r-- | layouts/notes/list.rss.xml | 39 | ||||
| -rw-r--r-- | layouts/partials/footer.html | 4 |
4 files changed, 46 insertions, 1 deletions
diff --git a/layouts/baseof.html b/layouts/baseof.html index 83a567e..1aa92bb 100644 --- a/layouts/baseof.html +++ b/layouts/baseof.html @@ -10,6 +10,9 @@ <meta name="description" content="{{ $description }}"> <link rel="canonical" href="{{ .Permalink }}"> <link rel="alternate" type="application/rss+xml" title="{{ site.Title }} Journal and Announcements" href="{{ "rss.xml" | absURL }}"> + {{- if eq .Section "notes" }} + <link rel="alternate" type="application/rss+xml" title="{{ site.Params.owner }} — Notes Updates" href="{{ "notes/rss.xml" | absURL }}"> + {{- end }} <link rel="stylesheet" href="{{ "style.css" | relURL }}"> <link rel="icon" href="{{ "favicon.ico" | relURL }}" sizes="any"> </head> diff --git a/layouts/notes/list.html b/layouts/notes/list.html index a8411e1..2bd8c67 100644 --- a/layouts/notes/list.html +++ b/layouts/notes/list.html @@ -7,6 +7,7 @@ </header> {{ .Content }} {{- if $isNotesRoot }} + <p><a href="{{ "notes/rss.xml" | relURL }}">Subscribe to notes updates</a></p> {{- with .RegularPages.ByTitle }} <section aria-labelledby="standalone-title"> <h2 id="standalone-title">STANDALONE NOTES</h2> diff --git a/layouts/notes/list.rss.xml b/layouts/notes/list.rss.xml new file mode 100644 index 0000000..6125ac4 --- /dev/null +++ b/layouts/notes/list.rss.xml @@ -0,0 +1,39 @@ +{{- $items := slice -}} +{{- range where site.RegularPages "Section" "notes" -}} + {{- if not .Params.updated -}} + {{- errorf "Missing required updated date in %s" .File.Path -}} + {{- end -}} + {{- $sortKey := printf "%s|%s" (.Lastmod.Format "2006-01-02T15:04:05-0700") .RelPermalink -}} + {{- $items = $items | append (dict "page" . "sortKey" $sortKey) -}} +{{- end -}} +{{- $items = sort $items "sortKey" "desc" -}} +{{ 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>{{ site.Params.owner }} — Notes Updates</title> + <link>{{ .Permalink }}</link> + <description>New and substantially revised technical notes by {{ site.Params.owner }}.</description> + <atom:link href="{{ (.OutputFormats.Get "RSS").Permalink }}" rel="self" type="application/rss+xml" /> + {{- with $items }} + <lastBuildDate>{{ (index . 0).page.Lastmod.Format "Mon, 02 Jan 2006 15:04:05 -0700" }}</lastBuildDate> + {{- end }} + {{- range $items }} + {{- $page := .page -}} + {{- $title := $page.Title -}} + {{- if $page.Params.series -}} + {{- $title = printf "%s — %s" $page.Parent.Title $page.Title -}} + {{- end -}} + {{- $summary := $page.Plain | strings.Truncate 200 -}} + {{- with $page.Params.description -}} + {{- $summary = . | plainify -}} + {{- end -}} + <item> + <title>{{ $title }}</title> + <link>{{ $page.Permalink }}</link> + <guid isPermaLink="false">{{ printf "%s#updated-%s" $page.Permalink ($page.Lastmod.Format "2006-01-02") }}</guid> + <pubDate>{{ $page.Lastmod.Format "Mon, 02 Jan 2006 15:04:05 -0700" }}</pubDate> + <description>{{ $summary }}</description> + </item> + {{- end }} + </channel> +</rss> diff --git a/layouts/partials/footer.html b/layouts/partials/footer.html index ac89098..b7a9b98 100644 --- a/layouts/partials/footer.html +++ b/layouts/partials/footer.html @@ -1,6 +1,8 @@ <footer class="site-footer"> <nav aria-label="Site information"> - <a href="{{ "/rss.xml" | relURL }}">rss</a> + <a href="{{ "/rss.xml" | relURL }}">journal & announcements rss</a> + <span aria-hidden="true">·</span> + <a href="{{ "/notes/rss.xml" | relURL }}">notes rss</a> <span aria-hidden="true">·</span> <a href="{{ site.Params.sourceURL }}">source</a> <span aria-hidden="true">·</span> |
