mirror of
https://github.com/gohugoio/hugo.git
synced 2024-12-29 02:13:34 +00:00
parent
729593c842
commit
3a786a248d
2 changed files with 42 additions and 1 deletions
|
@ -212,3 +212,27 @@ Some content
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// https://github.com/gohugoio/hugo/issues/4895
|
||||||
|
func TestTemplateBOM(t *testing.T) {
|
||||||
|
|
||||||
|
b := newTestSitesBuilder(t).WithSimpleConfigFile()
|
||||||
|
bom := "\ufeff"
|
||||||
|
|
||||||
|
b.WithTemplatesAdded(
|
||||||
|
"_default/baseof.html", bom+`
|
||||||
|
Base: {{ block "main" . }}base main{{ end }}`,
|
||||||
|
"_default/single.html", bom+`{{ define "main" }}Hi!?{{ end }}`)
|
||||||
|
|
||||||
|
b.WithContent("page.md", `---
|
||||||
|
title: "Page"
|
||||||
|
---
|
||||||
|
|
||||||
|
Page Content
|
||||||
|
`)
|
||||||
|
|
||||||
|
b.CreateSites().Build(BuildCfg{})
|
||||||
|
|
||||||
|
b.AssertFileContent("public/page/index.html", "Base: Hi!?")
|
||||||
|
|
||||||
|
}
|
||||||
|
|
|
@ -655,6 +655,22 @@ func (t *textTemplates) handleMaster(name, overlayFilename, masterFilename strin
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func removeLeadingBOM(s string) string {
|
||||||
|
const bom = '\ufeff'
|
||||||
|
|
||||||
|
for i, r := range s {
|
||||||
|
if i == 0 && r != bom {
|
||||||
|
return s
|
||||||
|
}
|
||||||
|
if i > 0 {
|
||||||
|
return s[i:]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return s
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
func (t *templateHandler) addTemplateFile(name, baseTemplatePath, path string) error {
|
func (t *templateHandler) addTemplateFile(name, baseTemplatePath, path string) error {
|
||||||
t.checkState()
|
t.checkState()
|
||||||
|
|
||||||
|
@ -666,7 +682,8 @@ func (t *templateHandler) addTemplateFile(name, baseTemplatePath, path string) e
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return templateInfo{filename: filename, fs: fs}, err
|
return templateInfo{filename: filename, fs: fs}, err
|
||||||
}
|
}
|
||||||
s := string(b)
|
|
||||||
|
s := removeLeadingBOM(string(b))
|
||||||
|
|
||||||
realFilename := filename
|
realFilename := filename
|
||||||
if fi, err := fs.Stat(filename); err == nil {
|
if fi, err := fs.Stat(filename); err == nil {
|
||||||
|
|
Loading…
Reference in a new issue