shithub: hugo

Download patch

ref: e117b1b2c7d18f25e1b7094fd7edb5e12721b79d
parent: 9e6b5eb98e964acd8840482a29db72d5868c9b14
author: Bjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com>
date: Wed Feb 22 16:13:21 EST 2017

hugolib: Add terms' pages to .Data.Pages

Fixes #2826

--- a/hugolib/page.go
+++ b/hugolib/page.go
@@ -1595,10 +1595,17 @@
 	case KindTaxonomyTerm:
 		plural := p.sections[0]
 		singular := s.taxonomiesPluralSingular[plural]
+		terms := s.Taxonomies[plural]
 
+		for _, tax := range terms {
+			pages = append(pages, tax.Pages()...)
+		}
+
+		pages = pages.ByWeight()
+
 		p.Data["Singular"] = singular
 		p.Data["Plural"] = plural
-		p.Data["Terms"] = s.Taxonomies[plural]
+		p.Data["Terms"] = terms
 		// keep the following just for legacy reasons
 		p.Data["OrderedIndex"] = p.Data["Terms"]
 		p.Data["Index"] = p.Data["Terms"]
--- a/hugolib/taxonomy_test.go
+++ b/hugolib/taxonomy_test.go
@@ -84,6 +84,7 @@
 
 	writeSource(t, fs, "content/p1.md", fmt.Sprintf(pageTemplate, "t1/c1", "- tag1", "- cat1", "- o1"))
 	writeSource(t, fs, "content/p2.md", fmt.Sprintf(pageTemplate, "t2/c1", "- tag2", "- cat1", "- o1"))
+	writeSource(t, fs, "content/p3.md", fmt.Sprintf(pageTemplate, "t2/c12", "- tag2", "- cat2", "- o1"))
 
 	writeNewContentFile(t, fs, "Category Terms", "2017-01-01", "content/categories/_index.md", 10)
 	writeNewContentFile(t, fs, "Tag1 List", "2017-01-01", "content/tags/tag1/_index.md", 10)
@@ -109,5 +110,16 @@
 	// 3.
 	th.assertFileContent("public/others/o1/index.html", "List", "O1")
 	th.assertFileContent("public/others/index.html", "Terms List", "Others")
+
+	s := h.Sites[0]
+	cat1 := s.getPage(KindTaxonomy, "categories", "cat1")
+	require.NotNil(t, cat1)
+	require.Len(t, cat1.Pages, 2)
+
+	cat := s.getPage(KindTaxonomyTerm, "categories")
+	require.NotNil(t, cat)
+	require.Len(t, cat.Pages, 3)
+	require.Len(t, cat.Data["Pages"], 3)
+	require.Equal(t, "t1/c1", cat.Pages[0].Title)
 
 }
--