diff options
author | Bjørn Erik Pedersen <[email protected]> | 2024-10-16 16:59:12 +0200 |
---|---|---|
committer | Bjørn Erik Pedersen <[email protected]> | 2024-10-16 18:01:11 +0200 |
commit | e4ad0c52713f228397e37416060f78f08a9265cc (patch) | |
tree | 983e0d8dcd96fe71f49b418541285a7f93c8668c | |
parent | a2f666b586b0df063ad240910b28a73dc3aa2673 (diff) | |
download | hugo-e4ad0c52713f228397e37416060f78f08a9265cc.tar.gz hugo-e4ad0c52713f228397e37416060f78f08a9265cc.zip |
Never sanitize when url set in front matter
Fixes #12954
-rw-r--r-- | resources/page/page_paths.go | 2 | ||||
-rw-r--r-- | resources/page/permalinks_integration_test.go | 13 |
2 files changed, 12 insertions, 3 deletions
diff --git a/resources/page/page_paths.go b/resources/page/page_paths.go index 4826ed5f9..ea22eab81 100644 --- a/resources/page/page_paths.go +++ b/resources/page/page_paths.go @@ -254,7 +254,7 @@ func CreateTargetPaths(d TargetPathDescriptor) (tp TargetPaths) { // if page URL is explicitly set in frontmatter, // preserve its value without sanitization - if d.Kind != kinds.KindPage || d.URL == "" { + if d.URL == "" { // Note: MakePathSanitized will lower case the path if // disablePathToLower isn't set. pb.Sanitize() diff --git a/resources/page/permalinks_integration_test.go b/resources/page/permalinks_integration_test.go index 4188c70ca..52bcd6860 100644 --- a/resources/page/permalinks_integration_test.go +++ b/resources/page/permalinks_integration_test.go @@ -235,6 +235,7 @@ slug: custom-recipe-2 } // Issue 12948. +// Issue 12954. func TestPermalinksWithEscapedColons(t *testing.T) { t.Parallel() @@ -244,9 +245,14 @@ func TestPermalinksWithEscapedColons(t *testing.T) { files := ` -- hugo.toml -- -disableKinds = ['home','rss','section','sitemap','taxonomy','term'] +disableKinds = ['home','rss','sitemap','taxonomy','term'] [permalinks.page] s2 = "/c\\:d/:slug/" +-- content/s1/_index.md -- +--- +title: s1 +url: "/a\\:b/:slug/" +--- -- content/s1/p1.md -- --- title: p1 @@ -258,13 +264,16 @@ title: p2 --- -- layouts/_default/single.html -- {{ .Title }} +-- layouts/_default/list.html -- +{{ .Title }} ` b := hugolib.Test(t, files) b.AssertFileExists("public/a:b/p1/index.html", true) + b.AssertFileExists("public/a:b/s1/index.html", true) - // The above URL comes from the URL front matter field where everything is allowed. + // The above URLs come from the URL front matter field where everything is allowed. // We strip colons from paths constructed by Hugo (they are not supported on Windows). b.AssertFileExists("public/cd/p2/index.html", true) } |