Repository: gohugoio/hugo (language: go)

Issue:
Check data issue
https://discourse.gohugo.io/t/hugo-can-t-find-site-data-with-a-current-development-build/48093


Discussion / hints:
I’m using Hugo on Ubuntu 22.04 to build [the documentation repo](https://github.com/bowman2001/perplexdoc) with [the theme](https://github.com/bowman2001/perplex). The theme contains some modules (_vendor) which rely on data files for configuration.



Fix patch:
diff --git a/hugolib/hugo_sites.go b/hugolib/hugo_sites.go
index 1b284061734..b40477c0243 100644
--- a/hugolib/hugo_sites.go
+++ b/hugolib/hugo_sites.go
@@ -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 {
diff --git a/source/fileInfo.go b/source/fileInfo.go
index 20ddda64761..6c67ba4073b 100644
--- a/source/fileInfo.go
+++ b/source/fileInfo.go
@@ -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 {


Test patch:
diff --git a/hugolib/datafiles_test.go b/hugolib/datafiles_test.go
index 48447414a21..99cc5b407d6 100644
--- a/hugolib/datafiles_test.go
+++ b/hugolib/datafiles_test.go
@@ -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|")
+}
diff --git a/hugolib/page_test.go b/hugolib/page_test.go
index e003f2ee116..d17f3fbcef9 100644
--- a/hugolib/page_test.go
+++ b/hugolib/page_test.go
@@ -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|")
 }