diff options
author | Joe Mooring <joe.mooring@veriphor.com> | 2022-12-03 17:06:56 -0800 |
---|---|---|
committer | Bjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com> | 2022-12-04 09:25:51 +0100 |
commit | 0b976d2b40fb3bc590f1cb01515116376bac0003 (patch) | |
tree | d79162f026e4aca01e1a0270c8d10771ccca3dbf /tpl | |
parent | a49e51fd0b03c261358643fb6656257158d95520 (diff) |
tpl/tplimpl: Allow alternate comment syntax
Allow alternate comment syntax before block definitions:
{{/* foo */}}
{{- /* foo */}}
{{- /* foo */ -}}
Fixes #10495
Diffstat (limited to 'tpl')
-rw-r--r-- | tpl/tplimpl/integration_test.go | 45 | ||||
-rw-r--r-- | tpl/tplimpl/template.go | 6 |
2 files changed, 51 insertions, 0 deletions
diff --git a/tpl/tplimpl/integration_test.go b/tpl/tplimpl/integration_test.go index 49722c5c1..4107a1faa 100644 --- a/tpl/tplimpl/integration_test.go +++ b/tpl/tplimpl/integration_test.go @@ -115,3 +115,48 @@ counter2: 3 `) } + +// Issue 10495 +func TestCommentsBeforeBlockDefinition(t *testing.T) { + t.Parallel() + + files := ` +-- config.toml -- +baseURL = 'http://example.com/' +-- content/s1/p1.md -- +--- +title: "S1P1" +--- +-- content/s2/p1.md -- +--- +title: "S2P1" +--- +-- content/s3/p1.md -- +--- +title: "S3P1" +--- +-- layouts/_default/baseof.html -- +{{ block "main" . }}{{ end }} +-- layouts/s1/single.html -- +{{/* foo */}} +{{ define "main" }}{{ .Title }}{{ end }} +-- layouts/s2/single.html -- +{{- /* foo */}} +{{ define "main" }}{{ .Title }}{{ end }} +-- layouts/s3/single.html -- +{{- /* foo */ -}} +{{ define "main" }}{{ .Title }}{{ end }} + ` + + b := hugolib.NewIntegrationTestBuilder( + hugolib.IntegrationTestConfig{ + T: t, + TxtarString: files, + }, + ) + b.Build() + + b.AssertFileContent("public/s1/p1/index.html", `S1P1`) + b.AssertFileContent("public/s2/p1/index.html", `S2P1`) + b.AssertFileContent("public/s3/p1/index.html", `S3P1`) +} diff --git a/tpl/tplimpl/template.go b/tpl/tplimpl/template.go index 81c898b2f..9a9e82a80 100644 --- a/tpl/tplimpl/template.go +++ b/tpl/tplimpl/template.go @@ -91,9 +91,15 @@ func needsBaseTemplate(templ string) bool { if !inComment && strings.HasPrefix(templ[i:], "{{/*") { inComment = true i += 4 + } else if !inComment && strings.HasPrefix(templ[i:], "{{- /*") { + inComment = true + i += 6 } else if inComment && strings.HasPrefix(templ[i:], "*/}}") { inComment = false i += 4 + } else if inComment && strings.HasPrefix(templ[i:], "*/ -}}") { + inComment = false + i += 6 } else { r, size := utf8.DecodeRuneInString(templ[i:]) if !inComment { |