summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com>2024-02-09 15:18:13 +0200
committerBjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com>2024-02-10 18:48:53 +0200
commitcaba6ba6e78dfd124a60cee321de441f8b21ae11 (patch)
tree1aea62facf48242733d7016969bedb9390df5458
parentf4575e5f29a04fd8613014d91b6bc63e83d37e69 (diff)
Fix taxonomy term with backing file regression
Fixes #12020
-rw-r--r--hugolib/content_map_page.go8
-rw-r--r--hugolib/page__new.go1
-rw-r--r--hugolib/taxonomy_test.go39
3 files changed, 47 insertions, 1 deletions
diff --git a/hugolib/content_map_page.go b/hugolib/content_map_page.go
index 43c67ce73..6273870b7 100644
--- a/hugolib/content_map_page.go
+++ b/hugolib/content_map_page.go
@@ -1511,6 +1511,8 @@ func (sa *sitePagesAssembler) assembleTermsAndTranslations() error {
}
pages.InsertIntoValuesDimension(pi.Base(), n)
term = pages.Get(pi.Base())
+ } else if term.(*pageState).m.term != v {
+ term.(*pageState).m.term = v
}
if s == "" {
@@ -1882,11 +1884,15 @@ func (m *pageMap) CreateSiteTaxonomies(ctx context.Context) error {
if taxonomy == nil {
return true, fmt.Errorf("missing taxonomy: %s", viewName.plural)
}
+ if p.m.term == "" {
+ panic("term is empty")
+ }
k := strings.ToLower(p.m.term)
+
err := m.treeTaxonomyEntries.WalkPrefix(
doctree.LockTypeRead,
paths.AddTrailingSlash(s),
- func(s string, wn *weightedContentNode) (bool, error) {
+ func(ss string, wn *weightedContentNode) (bool, error) {
taxonomy[k] = append(taxonomy[k], page.NewWeightedPage(wn.weight, wn.n.(page.Page), wn.term.Page()))
return false, nil
},
diff --git a/hugolib/page__new.go b/hugolib/page__new.go
index 818cbb5db..2c2d92ab8 100644
--- a/hugolib/page__new.go
+++ b/hugolib/page__new.go
@@ -148,6 +148,7 @@ func (h *HugoSites) newPage(m *pageMeta) (*pageState, *paths.Path, error) {
m.pageConfig.Kind = kinds.KindTaxonomy
} else {
m.pageConfig.Kind = kinds.KindTerm
+ m.term = m.pathInfo.Unnormalized().BaseNameNoIdentifier()
}
}
} else if m.f != nil {
diff --git a/hugolib/taxonomy_test.go b/hugolib/taxonomy_test.go
index 913f4c21d..ffcb8fb15 100644
--- a/hugolib/taxonomy_test.go
+++ b/hugolib/taxonomy_test.go
@@ -776,3 +776,42 @@ Len Book Authors: {{ len (index .Site.Taxonomies $taxonomy) }}
b.AssertFileContent("public/index.html", "Len Book Authors: 2")
}
+
+func TestTaxonomiesListTermsHome(t *testing.T) {
+ files := `
+-- hugo.toml --
+baseURL = "https://example.com"
+[taxonomies]
+tag = "tags"
+-- content/_index.md --
+---
+title: "Home"
+tags: ["a", "b", "c", "hello world"]
+---
+-- content/tags/a/_index.md --
+---
+title: "A"
+---
+-- content/tags/b/_index.md --
+---
+title: "B"
+---
+-- content/tags/c/_index.md --
+---
+title: "C"
+---
+-- content/tags/d/_index.md --
+---
+title: "D"
+---
+-- content/tags/hello-world/_index.md --
+---
+title: "Hello World!"
+---
+-- layouts/home.html --
+Terms: {{ range site.Taxonomies.tags }}{{ .Page.Title }}: {{ .Count }}|{{ end }}$
+`
+ b := Test(t, files)
+
+ b.AssertFileContent("public/index.html", "Terms: A: 1|B: 1|C: 1|Hello World!: 1|$")
+}