Fix resources.GetMatch, resources.Match, and resources.ByType to they don't normalize permalinks - hugo - [fork] hugo port for 9front
HTML git clone git@git.drkhsh.at/hugo.git
DIR Log
DIR Files
DIR Refs
DIR Submodules
DIR README
DIR LICENSE
---
DIR commit 7023cf0f07d07bd943404d88d5fc8f3c5f7c9cc2
DIR parent 9dfa9e70e6ac56cfbb875caf5fed412eb2b22d82
HTML Author: Bjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com>
Date: Fri, 1 Mar 2024 11:47:16 +0100
Fix resources.GetMatch, resources.Match, and resources.ByType to they don't normalize permalinks
Fixes #12182
Diffstat:
M resources/resource_factories/creat… | 2 +-
M tpl/resources/resources_integratio… | 27 +++++++++++++++++++++++++++
2 files changed, 28 insertions(+), 1 deletion(-)
---
DIR diff --git a/resources/resource_factories/create/create.go b/resources/resource_factories/create/create.go
@@ -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
DIR diff --git a/tpl/resources/resources_integration_test.go b/tpl/resources/resources_integration_test.go
@@ -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|
+
+ `)
+}