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)
        }