]> git.maquefel.me Git - brevno-suite/hugo/commitdiff
related: Handly []any
authorBjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com>
Tue, 17 Jan 2023 11:36:34 +0000 (12:36 +0100)
committerBjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com>
Tue, 17 Jan 2023 11:50:26 +0000 (12:50 +0100)
See #10624

related/inverted_index.go
related/inverted_index_test.go

index 1b1f69e3ec2232bb10d7d7ffb40222a460f8298b..5502f9f11758b7611fe67141bb520b0e5a227c8e 100644 (file)
@@ -23,6 +23,7 @@ import (
        "time"
 
        "github.com/gohugoio/hugo/common/maps"
+       "github.com/spf13/cast"
 
        "github.com/gohugoio/hugo/common/types"
        "github.com/mitchellh/mapstructure"
@@ -283,6 +284,8 @@ func (cfg IndexConfig) ToKeywords(v any) ([]Keyword, error) {
                        vv = vc
                }
                keywords = append(keywords, StringsToKeywords(vv...)...)
+       case []any:
+               return cfg.ToKeywords(cast.ToStringSlice(vv))
        case time.Time:
                layout := "2006"
                if cfg.Pattern != "" {
index fdef06b13feea60c40f2f6954c74f3d75712f8bb..7a3bd89c7864a3214b8a64a34af2e25757ecbc8b 100644 (file)
@@ -212,6 +212,19 @@ func TestToKeywordsToLower(t *testing.T) {
        })
 }
 
+func TestToKeywordsAnySlice(t *testing.T) {
+       c := qt.New(t)
+       var config IndexConfig
+       slice := []any{"A", 32, "C"}
+       keywords, err := config.ToKeywords(slice)
+       c.Assert(err, qt.IsNil)
+       c.Assert(keywords, qt.DeepEquals, []Keyword{
+               StringKeyword("A"),
+               StringKeyword("32"),
+               StringKeyword("C"),
+       })
+}
+
 func BenchmarkRelatedNewIndex(b *testing.B) {
        pages := make([]*testDoc, 100)
        numkeywords := 30