aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorBjørn Erik Pedersen <[email protected]>2024-10-16 16:59:12 +0200
committerBjørn Erik Pedersen <[email protected]>2024-10-16 18:01:11 +0200
commite4ad0c52713f228397e37416060f78f08a9265cc (patch)
tree983e0d8dcd96fe71f49b418541285a7f93c8668c
parenta2f666b586b0df063ad240910b28a73dc3aa2673 (diff)
downloadhugo-e4ad0c52713f228397e37416060f78f08a9265cc.tar.gz
hugo-e4ad0c52713f228397e37416060f78f08a9265cc.zip
Never sanitize when url set in front matter
Fixes #12954
-rw-r--r--resources/page/page_paths.go2
-rw-r--r--resources/page/permalinks_integration_test.go13
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)
}