From 52ea07d2eb9c581015f85c0d2d6973640a62281b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bj=C3=B8rn=20Erik=20Pedersen?= Date: Tue, 1 Nov 2022 17:15:04 +0100 Subject: [PATCH] Fix taxonomy weight sort regression Fixes #10406 --- hugolib/page.go | 5 ++++- hugolib/taxonomy_test.go | 42 ++++++++++++++++++++++++++++++++++++++-- 2 files changed, 44 insertions(+), 3 deletions(-) diff --git a/hugolib/page.go b/hugolib/page.go index 9f0d08ca3..ec7b82277 100644 --- a/hugolib/page.go +++ b/hugolib/page.go @@ -268,7 +268,10 @@ func (p *pageState) Pages() page.Pages { case page.KindSection, page.KindHome: pages = p.getPagesAndSections() case page.KindTerm: - pages = p.bucket.getTaxonomyEntries() + b := p.treeRef.n + viewInfo := b.viewInfo + taxonomy := p.s.Taxonomies()[viewInfo.name.plural].Get(viewInfo.termKey) + pages = taxonomy.Pages() case page.KindTaxonomy: pages = p.bucket.getTaxonomies() default: diff --git a/hugolib/taxonomy_test.go b/hugolib/taxonomy_test.go index b26032174..b6b696ed3 100644 --- a/hugolib/taxonomy_test.go +++ b/hugolib/taxonomy_test.go @@ -60,7 +60,6 @@ YAML frontmatter with tags and categories taxonomy.` } } -// func TestTaxonomiesWithAndWithoutContentFile(t *testing.T) { for _, uglyURLs := range []bool{false, true} { uglyURLs := uglyURLs @@ -521,7 +520,7 @@ Funny:|/p1/| Funny:|/p2/|`) } -//https://github.com/gohugoio/hugo/issues/6590 +// https://github.com/gohugoio/hugo/issues/6590 func TestTaxonomiesListPages(t *testing.T) { b := newTestSitesBuilder(t) b.WithTemplates("_default/list.html", ` @@ -694,3 +693,42 @@ abcdefgs: {{ template "print-page" $abcdefgs }}|IsAncestor: {{ $abcdefgs.IsAnces abcdefgs: /abcdefgs/|Abcdefgs|taxonomy|Parent: /|CurrentSection: /|FirstSection: /|IsAncestor: true|IsDescendant: false `) } + +func TestTaxonomiesWeightSort(t *testing.T) { + + files := ` +-- layouts/index.html -- +{{ $a := site.GetPage "tags/a"}} +:{{ range $a.Pages }}{{ .RelPermalink }}|{{ end }}: +-- content/p1.md -- +--- +title: P1 +weight: 100 +tags: ['a'] +tags_weight: 20 +--- +-- content/p3.md -- +--- +title: P2 +weight: 200 +tags: ['a'] +tags_weight: 30 +--- +-- content/p2.md -- +--- +title: P3 +weight: 50 +tags: ['a'] +tags_weight: 40 +--- + ` + + b := NewIntegrationTestBuilder( + IntegrationTestConfig{ + T: t, + TxtarString: files, + }, + ).Build() + + b.AssertFileContent("public/index.html", `:/p1/|/p3/|/p2/|:`) +}