From 7b6dafc53a21295e10c2bbc893bf265ea0dd2b22 Mon Sep 17 00:00:00 2001 From: Bjørn Erik Pedersen Date: Mon, 1 Jul 2024 15:49:26 +0200 Subject: Fix it so publishDate rolls up to section, taxonomy, or term pages Fixes #12438 --- hugolib/content_map_page.go | 4 +-- hugolib/dates_test.go | 83 +++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 85 insertions(+), 2 deletions(-) (limited to 'hugolib') diff --git a/hugolib/content_map_page.go b/hugolib/content_map_page.go index 0a9063e23..e3b29f186 100644 --- a/hugolib/content_map_page.go +++ b/hugolib/content_map_page.go @@ -1428,7 +1428,7 @@ func (sa *sitePagesAssembler) applyAggregates() error { } if wasZeroDates { - pageBundle.m.pageConfig.Dates.UpdateDateAndLastmodIfAfter(sp.m.pageConfig.Dates) + pageBundle.m.pageConfig.Dates.UpdateDateAndLastmodAndPublishDateIfAfter(sp.m.pageConfig.Dates) } if pageBundle.IsHome() { @@ -1565,7 +1565,7 @@ func (sa *sitePagesAssembler) applyAggregatesToTaxonomiesAndTerms() error { return } - p.m.pageConfig.Dates.UpdateDateAndLastmodIfAfter(sp.m.pageConfig.Dates) + p.m.pageConfig.Dates.UpdateDateAndLastmodAndPublishDateIfAfter(sp.m.pageConfig.Dates) }) } diff --git a/hugolib/dates_test.go b/hugolib/dates_test.go index 784fc101c..1a88cfd7d 100644 --- a/hugolib/dates_test.go +++ b/hugolib/dates_test.go @@ -266,3 +266,86 @@ Home's Date should be equal mydata date: true Full time: 6:00:00 am UTC `) } + +func TestPublisDateRollupIssue12438(t *testing.T) { + t.Parallel() + + // To future Hugo maintainers, this test will start to fail in 2099. + files := ` +-- hugo.toml -- +disableKinds = ['home','rss','sitemap'] +[taxonomies] +tag = 'tags' +-- layouts/_default/list.html -- +Date: {{ .Date.Format "2006-01-02" }} +PublishDate: {{ .PublishDate.Format "2006-01-02" }} +Lastmod: {{ .Lastmod.Format "2006-01-02" }} +-- layouts/_default/single.html -- +{{ .Title }} +-- content/s1/p1.md -- +--- +title: p1 +date: 2024-03-01 +lastmod: 2024-03-02 +tags: [t1] +--- +-- content/s1/p2.md -- +--- +title: p2 +date: 2024-04-03 +lastmod: 2024-04-04 +tags: [t1] +--- +-- content/s1/p3.md -- +--- +title: p3 +lastmod: 2099-05-06 +tags: [t1] +--- + +` + + // Test without publishDate in front matter. + b := Test(t, files) + + b.AssertFileContent("public/s1/index.html", ` + Date: 2099-05-06 + PublishDate: 2024-04-03 + Lastmod: 2099-05-06 + `) + + b.AssertFileContent("public/tags/index.html", ` + Date: 2024-04-03 + PublishDate: 2024-04-03 + Lastmod: 2024-04-04 + `) + + b.AssertFileContent("public/tags/t1/index.html", ` + Date: 2024-04-03 + PublishDate: 2024-04-03 + Lastmod: 2024-04-04 + `) + + // Test with publishDate in front matter. + files = strings.ReplaceAll(files, "lastmod", "publishDate") + + b = Test(t, files) + + b.AssertFileContent("public/s1/index.html", ` + Date: 2099-05-06 + PublishDate: 2024-04-04 + Lastmod: 2099-05-06 + `) + + b.AssertFileContent("public/tags/index.html", ` + Date: 2024-04-03 + PublishDate: 2024-04-04 + Lastmod: 2024-04-03 + `) + + b.AssertFileContent("public/tags/t1/index.html", ` + Date: 2024-04-03 + PublishDate: 2024-04-04 + Lastmod: 2024-04-03 + `) +} -- cgit v1.2.3