diff --git a/hugolib/hugo_sites_build.go b/hugolib/hugo_sites_build.go index cc8847f5591..1399e22d2a4 100644 --- a/hugolib/hugo_sites_build.go +++ b/hugolib/hugo_sites_build.go @@ -730,7 +730,7 @@ func (h *HugoSites) processPartial(ctx context.Context, l logg.LevelLogger, conf case files.ComponentFolderLayouts: tmplChanged = true - templatePath := pathInfo.TrimLeadingSlash().PathNoLang() + templatePath := pathInfo.Unnormalized().TrimLeadingSlash().PathNoLang() if !h.Tmpl().HasTemplate(templatePath) { tmplAdded = true } diff --git a/hugolib/rebuild_test.go b/hugolib/rebuild_test.go index f3b10cf18cc..f2717644da9 100644 --- a/hugolib/rebuild_test.go +++ b/hugolib/rebuild_test.go @@ -1490,3 +1490,27 @@ title: "Default" // Just make sure that it doesn't panic. b.EditFileReplaceAll("archetypes/default.md", "Default", "Default Edited").Build() } + +func TestRebuildEditMixedCaseTemplateFileIssue12165(t *testing.T) { + t.Parallel() + + files := ` +-- hugo.toml -- +baseURL = "https://example.com" +disableLiveReload = true +-- layouts/partials/MyTemplate.html -- +MyTemplate +-- layouts/index.html -- +MyTemplate: {{ partial "MyTemplate.html" . }}| + + +` + + b := TestRunning(t, files) + + b.AssertFileContent("public/index.html", "MyTemplate: MyTemplate") + + b.EditFileReplaceAll("layouts/partials/MyTemplate.html", "MyTemplate", "MyTemplate Edited").Build() + + b.AssertFileContent("public/index.html", "MyTemplate: MyTemplate Edited") +}