diff options
author | Bjørn Erik Pedersen <[email protected]> | 2024-03-13 11:19:06 +0100 |
---|---|---|
committer | Bjørn Erik Pedersen <[email protected]> | 2024-03-13 18:59:50 +0200 |
commit | 9e9b1f110cbcfd2182693d59243b36e6a4cc165d (patch) | |
tree | 01a03801843082347ab764c98ef9ca3a18624321 /resources/resource | |
parent | dc6a292133bf3249f1741a7624075b0782b16f84 (diff) | |
download | hugo-9e9b1f110cbcfd2182693d59243b36e6a4cc165d.tar.gz hugo-9e9b1f110cbcfd2182693d59243b36e6a4cc165d.zip |
Fix Name for nested resourced fetched in resources.ByName and similar
Fixes #12214
Diffstat (limited to 'resources/resource')
-rw-r--r-- | resources/resource/resources.go | 22 |
1 files changed, 12 insertions, 10 deletions
diff --git a/resources/resource/resources.go b/resources/resource/resources.go index aa01d4ce2..32bcdbb08 100644 --- a/resources/resource/resources.go +++ b/resources/resource/resources.go @@ -18,6 +18,7 @@ import ( "fmt" "strings" + "github.com/gohugoio/hugo/common/paths" "github.com/gohugoio/hugo/hugofs/glob" "github.com/spf13/cast" ) @@ -61,13 +62,14 @@ func (r Resources) Get(name any) Resource { if err != nil { panic(err) } - namestr = strings.ToLower(namestr) + + namestr = paths.AddLeadingSlash(namestr) // First check the Name. // Note that this can be modified by the user in the front matter, // also, it does not contain any language code. for _, resource := range r { - if strings.EqualFold(namestr, resource.Name()) { + if strings.EqualFold(namestr, paths.AddLeadingSlash(resource.Name())) { return resource } } @@ -75,7 +77,7 @@ func (r Resources) Get(name any) Resource { // Finally, check the normalized name. for _, resource := range r { if nop, ok := resource.(NameNormalizedProvider); ok { - if strings.EqualFold(namestr, nop.NameNormalized()) { + if strings.EqualFold(namestr, paths.AddLeadingSlash(nop.NameNormalized())) { return resource } } @@ -92,21 +94,21 @@ func (r Resources) GetMatch(pattern any) Resource { panic(err) } - g, err := glob.GetGlob(patternstr) + g, err := glob.GetGlob(paths.AddLeadingSlash(patternstr)) if err != nil { panic(err) } for _, resource := range r { - if g.Match(resource.Name()) { + if g.Match(paths.AddLeadingSlash(resource.Name())) { return resource } } - // Finally, check the original name. + // Finally, check the normalized name. for _, resource := range r { if nop, ok := resource.(NameNormalizedProvider); ok { - if g.Match(nop.NameNormalized()) { + if g.Match(paths.AddLeadingSlash(nop.NameNormalized())) { return resource } } @@ -130,14 +132,14 @@ func (r Resources) Match(pattern any) Resources { panic(err) } - g, err := glob.GetGlob(patternstr) + g, err := glob.GetGlob(paths.AddLeadingSlash(patternstr)) if err != nil { panic(err) } var matches Resources for _, resource := range r { - if g.Match(resource.Name()) { + if g.Match(paths.AddLeadingSlash(resource.Name())) { matches = append(matches, resource) } } @@ -145,7 +147,7 @@ func (r Resources) Match(pattern any) Resources { // Fall back to the normalized name. for _, resource := range r { if nop, ok := resource.(NameNormalizedProvider); ok { - if g.Match(nop.NameNormalized()) { + if g.Match(paths.AddLeadingSlash(nop.NameNormalized())) { matches = append(matches, resource) } } |