Never sanitize when url set in front matter - hugo - [fork] hugo port for 9front
(HTM) git clone git@git.drkhsh.at/hugo.git
(DIR) Log
(DIR) Files
(DIR) Refs
(DIR) Submodules
(DIR) README
(DIR) LICENSE
---
(DIR) commit e4ad0c52713f228397e37416060f78f08a9265cc
(DIR) parent a2f666b586b0df063ad240910b28a73dc3aa2673
(HTM) Author: Bjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com>
Date: Wed, 16 Oct 2024 16:59:12 +0200
Never sanitize when url set in front matter
Fixes #12954
Diffstat:
M resources/page/page_paths.go | 2 +-
M resources/page/permalinks_integrat… | 13 +++++++++++--
2 files changed, 12 insertions(+), 3 deletions(-)
---
(DIR) diff --git 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()
(DIR) diff --git 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)
}