shithub: hugo

Download patch

ref: b2dcd53e3c0240c4afd21d1818fd180c2d1b9d34
parent: 36983e6189a717f1d4d1da6652621d7f8fe186ad
author: Bjørn Erik Pedersen <[email protected]>
date: Tue Feb 18 13:49:11 EST 2020

Use the tree for taxonomy.Pages()

--- a/hugolib/content_map_page.go
+++ b/hugolib/content_map_page.go
@@ -827,6 +827,20 @@
 	return b.sections
 }
 
+func (b *pagesMapBucket) getTaxonomyEntries() page.Pages {
+	var pas page.Pages
+	ref := b.owner.treeRef
+	viewInfo := ref.n.viewInfo
+	prefix := strings.ToLower("/" + viewInfo.name.plural + "/" + viewInfo.termKey + "/")
+	ref.m.taxonomyEntries.WalkPrefix(prefix, func(s string, v interface{}) bool {
+		n := v.(*contentNode)
+		pas = append(pas, n.viewInfo.ref.p)
+		return false
+	})
+	page.SortByDefault(pas)
+	return pas
+}
+
 type sectionAggregate struct {
 	datesAll             resource.Dates
 	datesSection         resource.Dates
--- a/hugolib/page.go
+++ b/hugolib/page.go
@@ -186,10 +186,7 @@
 		case page.KindSection, page.KindHome:
 			pages = p.getPagesAndSections()
 		case page.KindTaxonomy:
-			b := p.treeRef.n
-			viewInfo := b.viewInfo
-			taxonomy := p.s.Taxonomies()[viewInfo.name.plural].Get(viewInfo.termKey)
-			pages = taxonomy.Pages()
+			pages = p.bucket.getTaxonomyEntries()
 		case page.KindTaxonomyTerm:
 			pages = p.bucket.getTaxonomies()
 		default:
--- a/hugolib/taxonomy_test.go
+++ b/hugolib/taxonomy_test.go
@@ -538,15 +538,29 @@
 
 }
 
-func TestTaxonomiesParent(t *testing.T) {
+func TestTaxonomiesPageCollections(t *testing.T) {
 	t.Parallel()
 
 	b := newTestSitesBuilder(t)
-	b.WithContent("p.md", `---
-title: "Page"
+	b.WithContent("p1.md", `---
+title: "Page1"
+categories: ["funny", "cats"]
+---
+`, "p2.md", `---
+title: "Page2"
 categories: ["funny"]
 ---
+`)
 
+	b.WithTemplatesAdded("index.html", `
+{{ $categories := site.GetPage "categories" }}
+{{ $funny := site.GetPage "categories/funny" }}
+{{ $cats := site.GetPage "categories/cats" }}
+
+Categories Pages: {{ range $categories.Pages}}{{.RelPermalink }}|{{ end }}:END
+Funny Pages: {{ range $funny.Pages}}{{.RelPermalink }}|{{ end }}:END
+Cats Pages: {{ range $cats.Pages}}{{.RelPermalink }}|{{ end }}:END
+
 `)
 
 	b.Build(BuildCfg{})
@@ -560,7 +574,13 @@
 	b.Assert(cat.Parent().IsHome(), qt.Equals, true)
 	b.Assert(funny.Parent(), qt.Equals, cat)
 
-	b.AssertFileContent("public/categories/funny/index.xml", `<link>http://example.com/p/</link>`)
+	b.AssertFileContent("public/index.html", `
+Categories Pages: /categories/cats/|/categories/funny/|:END
+Funny Pages: /p1/|/p2/|:END
+Cats Pages: /p1/|:END
+`)
+
+	b.AssertFileContent("public/categories/funny/index.xml", `<link>http://example.com/p1/</link>`)
 	b.AssertFileContent("public/categories/index.xml", `<link>http://example.com/categories/funny/</link>`)
 
 }