text := ctx.Buffer.Bytes()[pos:]
ctx.Buffer.Truncate(pos)
- // Extract a source sample to use for position information.
- nn := n.FirstChild()
- var start, stop int
- for i := 0; i < nn.Lines().Len() && i < 2; i++ {
- line := nn.Lines().At(i)
- if i == 0 {
- start = line.Start
- }
- stop = line.Stop
- }
-
- // We do not mutate the source, so this is safe.
- sourceRef := src[start:stop]
-
ordinal := ctx.GetAndIncrementOrdinal(ast.KindBlockquote)
texts := string(text)
texts = "<p>" + texts[strings.Index(texts, "\n")+1:]
}
+ var sourceRef []byte
+
+ // Extract a source sample to use for position information.
+ if nn := n.FirstChild(); nn != nil {
+ var start, stop int
+ for i := 0; i < nn.Lines().Len() && i < 2; i++ {
+ line := nn.Lines().At(i)
+ if i == 0 {
+ start = line.Start
+ }
+ stop = line.Stop
+ }
+ // We do not mutate the source, so this is safe.
+ sourceRef = src[start:stop]
+ }
+
bqctx := &blockquoteContext{
page: ctx.DocumentContext().Document,
pageInner: r.getPageInner(ctx),
"Blockquote Alert Page: |<p>This is a tip with attributes.</p>\n|p1|p1|",
)
}
+
+func TestBlockquoteEmptyIssue12756(t *testing.T) {
+ t.Parallel()
+
+ files := `
+-- hugo.toml --
+-- content/p1.md --
+---
+title: "p1"
+---
+
+>
+-- layouts/_default/single.html --
+Content: {{ .Content }}
+
+`
+
+ b := hugolib.Test(t, files)
+ b.AssertFileContent("public/p1/index.html", "Content: <blockquote>\n</blockquote>\n")
+}