]> git.maquefel.me Git - brevno-suite/hugo/commitdiff
resources/page: Make Taxonomy.Get and Taxonomy.Count case-insensitive
authorJoe Mooring <joe.mooring@veriphor.com>
Thu, 29 Feb 2024 19:18:35 +0000 (11:18 -0800)
committerBjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com>
Fri, 1 Mar 2024 11:09:00 +0000 (12:09 +0100)
Closes #12177

resources/page/taxonomy.go
resources/page/taxonomy_integration_test.go [new file with mode: 0644]

index 66c9e6fae33185b877ef8a30ff22b5802bc0e3f9..7258ec197c0378d71cb9e000520e0930f1ee2e33 100644 (file)
@@ -16,6 +16,7 @@ package page
 import (
        "fmt"
        "sort"
+       "strings"
 
        "github.com/gohugoio/hugo/compare"
        "github.com/gohugoio/hugo/langs"
@@ -58,11 +59,11 @@ type OrderedTaxonomyEntry struct {
 
 // Get the weighted pages for the given key.
 func (i Taxonomy) Get(key string) WeightedPages {
-       return i[key]
+       return i[strings.ToLower(key)]
 }
 
 // Count the weighted pages for the given key.
-func (i Taxonomy) Count(key string) int { return len(i[key]) }
+func (i Taxonomy) Count(key string) int { return len(i[strings.ToLower(key)]) }
 
 // TaxonomyArray returns an ordered taxonomy with a non defined order.
 func (i Taxonomy) TaxonomyArray() OrderedTaxonomy {
diff --git a/resources/page/taxonomy_integration_test.go b/resources/page/taxonomy_integration_test.go
new file mode 100644 (file)
index 0000000..a028857
--- /dev/null
@@ -0,0 +1,55 @@
+// Copyright 2024 The Hugo Authors. All rights reserved.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+package page_test
+
+import (
+       "testing"
+
+       "github.com/gohugoio/hugo/hugolib"
+)
+
+func TestTaxonomiesGetAndCount(t *testing.T) {
+       t.Parallel()
+
+       files := `
+-- hugo.toml --
+disableKinds = ['rss','sitemap']
+[taxonomies]
+author = 'authors'
+-- layouts/_default/home.html --
+John Smith count: {{ site.Taxonomies.authors.Count "John Smith" }}
+Robert Jones count: {{ (site.Taxonomies.authors.Get "Robert Jones").Pages.Len }}
+-- layouts/_default/single.html --
+{{ .Title }}|
+-- layouts/_default/list.html --
+{{ .Title }}|
+-- content/p1.md --
+---
+title: p1
+authors: [John Smith,Robert Jones]
+---
+-- content/p2.md --
+---
+title: p2
+authors: [John Smith]
+---
+`
+
+       b := hugolib.Test(t, files)
+
+       b.AssertFileContent("public/index.html",
+               "John Smith count: 2",
+               "Robert Jones count: 1",
+       )
+}