]> git.maquefel.me Git - brevno-suite/hugo/commitdiff
Preserve file/dir name case when loading data
authorBjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com>
Sat, 3 Feb 2024 14:43:28 +0000 (15:43 +0100)
committerBjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com>
Sat, 3 Feb 2024 15:30:10 +0000 (16:30 +0100)
Fixes #11979

hugolib/datafiles_test.go
hugolib/hugo_sites.go
hugolib/page_test.go
source/fileInfo.go

index 48447414a21fa5648ee6b66fb24dac9c76e1d27c..99cc5b407d69cf1b15e9470e6c1e695e973fa033 100644 (file)
@@ -47,3 +47,20 @@ d: {{  site.Data.d.v1 }}|
                b.AssertFileContent("public/index.html", "a: a_v1|\nb: b_v1|\ncd: c_d_v1|\nd: d_v1_theme|")
        })
 }
+
+func TestDataMixedCaseFolders(t *testing.T) {
+       t.Parallel()
+
+       files := `
+-- hugo.toml --
+baseURL = "https://example.com"
+-- data/MyFolder/MyData.toml --
+v1 = "my_v1"
+-- layouts/index.html --
+{{ site.Data }}
+v1: {{  site.Data.MyFolder.MyData.v1 }}|
+`
+       b := Test(t, files)
+
+       b.AssertFileContent("public/index.html", "v1: my_v1|")
+}
index 1b2840617344e4539ea5222b46a928626792d63d..b40477c02438410d3d44eca3e68a2e36fca32d0d 100644 (file)
@@ -502,7 +502,7 @@ func (h *HugoSites) handleDataFile(r *source.File) error {
 
        // Crawl in data tree to insert data
        current = h.data
-       dataPath := r.FileInfo().Meta().PathInfo.Dir()[1:]
+       dataPath := r.FileInfo().Meta().PathInfo.Unmormalized().Dir()[1:]
        keyParts := strings.Split(dataPath, "/")
 
        for _, key := range keyParts {
index e003f2ee1168ad304bb0fcd587ef4788653ac5dd..d17f3fbcef9715639f56a4d5a10f4ebb33d1a6c8 100644 (file)
@@ -1713,7 +1713,7 @@ Single: {{ .Title}}|{{ .RelPermalink }}|{{ .Path }}|
        b := Test(t, files)
        b.AssertFileContent("public/sect/p1/index.html", "Single: Page1|/sect/p1/|/sect/p1")
        b.AssertFileContent("public/sect/PaGe2/index.html", "Single: Page2|/sect/PaGe2/|/sect/p2")
-       b.AssertFileContent("public/sect2/page3/index.html", "Single: Page3|/sect2/page3/|/sect2/page3|")
+       b.AssertFileContent("public/sect2/PaGe3/index.html", "Single: Page3|/sect2/PaGe3/|/sect2/page3|")
        b.AssertFileContent("public/sect3/Pag.E4/index.html", "Single: Pag.E4|/sect3/Pag.E4/|/sect3/p4|")
 }
 
index 20ddda64761fb0eb2e5b612b3b32fa3f8805ca38..6c67ba4073bf4dd95249e5aab3be0afa3eed7b13 100644 (file)
@@ -130,7 +130,7 @@ func (fi *File) pathToDir(s string) string {
 }
 
 func (fi *File) p() *paths.Path {
-       return fi.fim.Meta().PathInfo
+       return fi.fim.Meta().PathInfo.Unmormalized()
 }
 
 func NewFileInfoFrom(path, filename string) *File {