From d595419031b247d6f15a615f6e70b1956ff8eab1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bj=C3=B8rn=20Erik=20Pedersen?= Date: Tue, 17 Jan 2023 12:36:34 +0100 Subject: [PATCH] related: Handly []any See #10624 --- related/inverted_index.go | 3 +++ related/inverted_index_test.go | 13 +++++++++++++ 2 files changed, 16 insertions(+) diff --git a/related/inverted_index.go b/related/inverted_index.go index 1b1f69e3e..5502f9f11 100644 --- a/related/inverted_index.go +++ b/related/inverted_index.go @@ -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 != "" { diff --git a/related/inverted_index_test.go b/related/inverted_index_test.go index fdef06b13..7a3bd89c7 100644 --- a/related/inverted_index_test.go +++ b/related/inverted_index_test.go @@ -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