diff options
| -rw-r--r-- | CHANGELOG.md | 20 | ||||
| -rw-r--r-- | layouts/_default/list.atom.xml | 6 | ||||
| -rw-r--r-- | layouts/_default/list.feed.xml | 6 | ||||
| -rw-r--r-- | layouts/partials/site-last-mod.html | 21 |
4 files changed, 46 insertions, 7 deletions
diff --git a/CHANGELOG.md b/CHANGELOG.md index fb46543..b3e4913 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,6 +7,16 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## [Unreleased](https://github.com/sergeyklay/gohugo-theme-ed/compare/v0.7.0...HEAD) +### Added + +- Introduced a new partial template `site-last-mod.html` to handle site last + modification date more robustly across Hugo versions. This change accommodates + the deprecation of `.Site.LastChange` in favour of `.Site.Lastmod` for Hugo + versions equal to or greater than 0.123.0. Usage: + ``` + {{ $siteLastMod := partial "site-last-mod.html" . }} + ``` + ### Changed - Updated the minimum required Hugo version for this theme to 0.114.0. @@ -20,9 +30,13 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 warning introduced in Hugo v0.114.0, ensuring compatibility with future versions of Hugo. - Replace Go script with Node.js implementation for Netlify redirects patching - for Deploy Preview context. This change aims to eliminate the dependency on Go - for the theme's development environment, and streamline the project's technology - stack. + for Deploy Preview context. +- Updated Atom and RSS feed templates to use the `site-last-mod.html` partial for + dynamically setting the site's last modification date. + - In `list.atom.xml`, replaced `site.LastChange` with `$siteLastMod` in the + `<updated>` tag. + - In `list.feed.xml`, replaced `site.LastChange` with `$siteLastMod` in the + `<lastBuildDate>` tag. ### Fixed diff --git a/layouts/_default/list.atom.xml b/layouts/_default/list.atom.xml index eabd899..67ff79b 100644 --- a/layouts/_default/list.atom.xml +++ b/layouts/_default/list.atom.xml @@ -14,6 +14,8 @@ {{- $limit := site.Params.feedSize | default 25 -}} {{- $pages = $pages | first $limit -}} +{{- $siteLastMod := partial "site-last-mod.html" . -}} + {{- safeHTML "<?xml version=\"1.0\" encoding=\"utf-8\" standalone=\"yes\" ?>" }} <feed xmlns="http://www.w3.org/2005/Atom" xmlns:media="http://search.yahoo.com/mrss/" xml:lang="{{ site.LanguageCode }}" xml:base="{{ site.BaseURL }}"> {{ printf `<title type="html"><![CDATA[%s]]></title>` (partial "title.html" .) | safeHTML }} @@ -32,8 +34,8 @@ {{ with site.Author.email }}<email>{{ . | html }}</email>{{ end }} </author>{{ end }}{{ with site.Params.Copyright }}{{ $copyright := replace . "{year}" now.Year }}{{ $copyright = replace $copyright "©" "©" }} <rights>{{ $copyright | plainify }}</rights>{{ end }} - <generator uri="https://gohugo.io" version="{{ hugo.Version }}">Hugo</generator>{{ if not site.LastChange.IsZero }} - <updated>{{ site.LastChange.Format "2006-01-02T15:04:05Z07:00" | safeHTML }}</updated>{{ end }}{{ $uuid := sha1 (site.BaseURL | absURL) }} + <generator uri="https://gohugo.io" version="{{ hugo.Version }}">Hugo</generator>{{ if ne $siteLastMod "" }} + <updated>{{ $siteLastMod.Format "2006-01-02T15:04:05Z07:00" | safeHTML }}</updated>{{ end }}{{ $uuid := sha1 (site.BaseURL | absURL) }} <id>urn:uuid:{{ substr $uuid 0 8 }}-{{ substr $uuid 8 4 }}-5{{ substr $uuid 13 3 }}-{{ substr $uuid 16 1 }}9{{ substr $uuid 17 2 }}-{{ substr $uuid 21 12 }}</id>{{- range $pages }} <entry> {{- $url := .Permalink | absURL }}{{ $uuid := sha1 (.Permalink | absURL) }}{{ $page := . }} diff --git a/layouts/_default/list.feed.xml b/layouts/_default/list.feed.xml index d66688b..2bc3cb7 100644 --- a/layouts/_default/list.feed.xml +++ b/layouts/_default/list.feed.xml @@ -14,6 +14,8 @@ {{- $limit := site.Params.feedSize | default 25 -}} {{- $pages = $pages | first $limit -}} +{{- $siteLastMod := partial "site-last-mod.html" . -}} + {{- printf "<?xml version=\"1.0\" encoding=\"utf-8\" standalone=\"yes\" ?>" | safeHTML }} <rss version="2.0" xmlns:content="http://purl.org/rss/1.0/modules/content/" @@ -48,8 +50,8 @@ <generator>Hugo {{ hugo.Version }}</generator>{{ with site.Author.name }} {{ printf `<dc:creator type="html"><![CDATA[%s]]></dc:creator>` . | safeHTML }}{{ end }}{{ with site.LanguageCode }} <language>{{ . }}</language>{{ end }}{{ with site.Params.Copyright }}{{ $copyright := replace . "{year}" now.Year }}{{ $copyright = replace $copyright "©" "©" }} - <copyright>{{ $copyright | plainify }}</copyright>{{ end }}{{ if not site.LastChange.IsZero }} - <lastBuildDate>{{ site.LastChange.Format "Mon, 02 Jan 2006 15:04:05 -0700" | safeHTML }}</lastBuildDate>{{ end }}{{- range $pages }} + <copyright>{{ $copyright | plainify }}</copyright>{{ end }}{{ if ne $siteLastMod "" }} + <lastBuildDate>{{ $siteLastMod.Format "Mon, 02 Jan 2006 15:04:05 -0700" | safeHTML }}</lastBuildDate>{{ end }}{{- range $pages }} <item> {{ printf `<title type="html"><![CDATA[%s]]></title>` .Title | safeHTML }} <link>{{ .Permalink | absURL }}?utm_source=rss_feed</link> diff --git a/layouts/partials/site-last-mod.html b/layouts/partials/site-last-mod.html new file mode 100644 index 0000000..ecd3900 --- /dev/null +++ b/layouts/partials/site-last-mod.html @@ -0,0 +1,21 @@ +{{- /* The .Site.LastChange was deprecated in Hugo v0.123.0 */ -}} +{{- /* Use .Site.Lastmod if .Site.Hugo.Version greater than or equal to v0.123.0 */ -}} +{{- /* Otherwise, use .Site.LastChange */ -}} + +{{- /* For more see: https://github.com/gohugoio/hugo/releases/tag/v0.123.0 */ -}} + +{{- /* Usage: {{ $siteLastMod := partial "site-last-mod.html" . }} */ -}} + +{{- $siteLastMod := "" -}} + +{{- if ge site.Hugo.Version "0.123.0" -}} + {{- if not site.Lastmod.IsZero -}} + {{- $siteLastMod = site.Lastmod -}} + {{- end -}} +{{- else -}} + {{- if not site.LastChange.IsZero -}} + {{- $siteLastMod = site.LastChange -}} + {{- end -}} +{{- end -}} + +{{- return $siteLastMod -}} |
