]> git.maquefel.me Git - brevno-suite/hugo/commitdiff
tpl/tplimpl: Allow alternate comment syntax
authorJoe Mooring <joe.mooring@veriphor.com>
Sun, 4 Dec 2022 01:06:56 +0000 (17:06 -0800)
committerBjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com>
Sun, 4 Dec 2022 08:25:51 +0000 (09:25 +0100)
Allow alternate comment syntax before block definitions:

{{/* foo */}}
{{- /* foo */}}
{{- /* foo */ -}}

Fixes #10495

tpl/tplimpl/integration_test.go
tpl/tplimpl/template.go

index 49722c5c1dde27f02fb9559c71b19e72cfa30770..4107a1faa35591dd2fb4dc150151bb29f6f86fb4 100644 (file)
@@ -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`)
+}
index 81c898b2f7a408b9076b74fc9fc297f8159cd39c..9a9e82a804cf6cbaf673a39ed2d3040b9f25c946 100644 (file)
@@ -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 {