Fix resources.GetMatch, resources.Match, and resources.ByType to they don't normalize permalinks

Fixes #12182
This commit is contained in:
Bjørn Erik Pedersen 2024-03-01 11:47:16 +01:00
parent 9dfa9e70e6
commit 7023cf0f07
2 changed files with 28 additions and 1 deletions

View file

@ -134,7 +134,7 @@ func (c *Client) match(name, pattern string, matchFunc func(r resource.Resource)
return meta.Open()
},
GroupIdentity: meta.PathInfo,
TargetPath: meta.PathInfo.PathNoLang(),
TargetPath: meta.PathInfo.Unnormalized().Path(),
})
if err != nil {
return true, err

View file

@ -116,3 +116,30 @@ Empty string not found
`)
}
func TestResourcesGettersShouldNotNormalizePermalinks(t *testing.T) {
t.Parallel()
files := `
-- config.toml --
baseURL = "http://example.com/"
-- assets/401K Prospectus.txt --
Prospectus.
-- layouts/index.html --
{{ $name := "401K Prospectus.txt" }}
Get: {{ with resources.Get $name }}{{ .RelPermalink }}|{{ .Permalink }}|{{ end }}
GetMatch: {{ with resources.GetMatch $name }}{{ .RelPermalink }}|{{ .Permalink }}|{{ end }}
Match: {{ with (index (resources.Match $name) 0) }}{{ .RelPermalink }}|{{ .Permalink }}|{{ end }}
ByType: {{ with (index (resources.ByType "text") 0) }}{{ .RelPermalink }}|{{ .Permalink }}|{{ end }}
`
b := hugolib.Test(t, files)
b.AssertFileContent("public/index.html", `
Get: /401K%20Prospectus.txt|http://example.com/401K%20Prospectus.txt|
GetMatch: /401K%20Prospectus.txt|http://example.com/401K%20Prospectus.txt|
Match: /401K%20Prospectus.txt|http://example.com/401K%20Prospectus.txt|
ByType: /401K%20Prospectus.txt|http://example.com/401K%20Prospectus.txt|
`)
}