]> git.maquefel.me Git - brevno-suite/hugo/commitdiff
Fix taxonomy term with backing file regression
authorBjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com>
Fri, 9 Feb 2024 13:18:13 +0000 (15:18 +0200)
committerBjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com>
Sat, 10 Feb 2024 16:48:53 +0000 (18:48 +0200)
Fixes #12020

hugolib/content_map_page.go
hugolib/page__new.go
hugolib/taxonomy_test.go

index 43c67ce738a51106d409128675568a87d407b6f1..6273870b73f31f619085072cfebfa126546aae90 100644 (file)
@@ -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
                                                },
index 818cbb5db2b34a9612829289322e1089dcb764d0..2c2d92ab83ecd4badc64ecbccdc8bc43d0a4a47a 100644 (file)
@@ -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 {
index 913f4c21daf656c6b53b710ede878747abc3e215..ffcb8fb15c7c8d79b97cd125af20e0bc69813a26 100644 (file)
@@ -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|$")
+}