mirror of
https://github.com/gohugoio/hugo.git
synced 2024-11-21 20:46:30 -05:00
parent
ad6504e6b5
commit
a67d95fe1a
2 changed files with 27 additions and 6 deletions
|
@ -217,6 +217,16 @@ P3: <p>P3. xml-link: https://www.example.org|</p>
|
||||||
func TestRenderLinkWithMarkupInText(t *testing.T) {
|
func TestRenderLinkWithMarkupInText(t *testing.T) {
|
||||||
|
|
||||||
b := newTestSitesBuilder(t)
|
b := newTestSitesBuilder(t)
|
||||||
|
b.WithConfigFile("toml", `
|
||||||
|
|
||||||
|
baseURL="https://example.org"
|
||||||
|
|
||||||
|
[markup]
|
||||||
|
[markup.goldmark]
|
||||||
|
[markup.goldmark.renderer]
|
||||||
|
unsafe = true
|
||||||
|
|
||||||
|
`)
|
||||||
|
|
||||||
b.WithTemplates("index.html", `
|
b.WithTemplates("index.html", `
|
||||||
{{ $p := site.GetPage "p1.md" }}
|
{{ $p := site.GetPage "p1.md" }}
|
||||||
|
@ -224,6 +234,7 @@ P1: {{ $p.Content }}
|
||||||
|
|
||||||
`,
|
`,
|
||||||
"_default/_markup/render-link.html", `html-link: {{ .Destination | safeURL }}|Text: {{ .Text | safeHTML }}|Plain: {{ .PlainText | safeHTML }}`,
|
"_default/_markup/render-link.html", `html-link: {{ .Destination | safeURL }}|Text: {{ .Text | safeHTML }}|Plain: {{ .PlainText | safeHTML }}`,
|
||||||
|
"_default/_markup/render-image.html", `html-image: {{ .Destination | safeURL }}|Text: {{ .Text | safeHTML }}|Plain: {{ .PlainText | safeHTML }}`,
|
||||||
)
|
)
|
||||||
|
|
||||||
b.WithContent("p1.md", `---
|
b.WithContent("p1.md", `---
|
||||||
|
@ -233,6 +244,11 @@ title: "p1"
|
||||||
START: [**should be bold**](https://gohugo.io)END
|
START: [**should be bold**](https://gohugo.io)END
|
||||||
|
|
||||||
Some regular **markup**.
|
Some regular **markup**.
|
||||||
|
|
||||||
|
Image:
|
||||||
|
|
||||||
|
![Hello<br> Goodbye](image.jpg)END
|
||||||
|
|
||||||
`)
|
`)
|
||||||
|
|
||||||
b.Build(BuildCfg{})
|
b.Build(BuildCfg{})
|
||||||
|
@ -240,6 +256,7 @@ Some regular **markup**.
|
||||||
b.AssertFileContent("public/index.html", `
|
b.AssertFileContent("public/index.html", `
|
||||||
P1: <p>START: html-link: https://gohugo.io|Text: <strong>should be bold</strong>|Plain: should be boldEND</p>
|
P1: <p>START: html-link: https://gohugo.io|Text: <strong>should be bold</strong>|Plain: should be boldEND</p>
|
||||||
<p>Some regular <strong>markup</strong>.</p>
|
<p>Some regular <strong>markup</strong>.</p>
|
||||||
|
<p>html-image: image.jpg|Text: Hello<br> Goodbye|Plain: Hello GoodbyeEND</p>
|
||||||
`)
|
`)
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -256,6 +273,7 @@ RSTART:{{ "**Bold Markdown**" | $p.RenderString }}:REND
|
||||||
RSTART:{{ "**Bold Block Markdown**" | $p.RenderString $optBlock }}:REND
|
RSTART:{{ "**Bold Block Markdown**" | $p.RenderString $optBlock }}:REND
|
||||||
RSTART:{{ "/italic org mode/" | $p.RenderString $optOrg }}:REND
|
RSTART:{{ "/italic org mode/" | $p.RenderString $optOrg }}:REND
|
||||||
|
|
||||||
|
|
||||||
`)
|
`)
|
||||||
|
|
||||||
b.WithContent("p1.md", `---
|
b.WithContent("p1.md", `---
|
||||||
|
|
|
@ -137,7 +137,7 @@ func (r *linkRenderer) renderImage(w util.BufWriter, source []byte, node ast.Nod
|
||||||
n := node.(*ast.Image)
|
n := node.(*ast.Image)
|
||||||
var h *hooks.Render
|
var h *hooks.Render
|
||||||
|
|
||||||
ctx, ok := w.(renderContextData)
|
ctx, ok := w.(*renderContext)
|
||||||
if ok {
|
if ok {
|
||||||
h = ctx.RenderContext().RenderHooks
|
h = ctx.RenderContext().RenderHooks
|
||||||
ok = h != nil && h.ImageRenderer != nil
|
ok = h != nil && h.ImageRenderer != nil
|
||||||
|
@ -147,11 +147,14 @@ func (r *linkRenderer) renderImage(w util.BufWriter, source []byte, node ast.Nod
|
||||||
return r.renderDefaultImage(w, source, node, entering)
|
return r.renderDefaultImage(w, source, node, entering)
|
||||||
}
|
}
|
||||||
|
|
||||||
if !entering {
|
if entering {
|
||||||
|
// Store the current pos so we can capture the rendered text.
|
||||||
|
ctx.pos = ctx.Buffer.Len()
|
||||||
return ast.WalkContinue, nil
|
return ast.WalkContinue, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
text := string(n.Text(source))
|
text := ctx.Buffer.Bytes()[ctx.pos:]
|
||||||
|
ctx.Buffer.Truncate(ctx.pos)
|
||||||
|
|
||||||
err := h.ImageRenderer.Render(
|
err := h.ImageRenderer.Render(
|
||||||
w,
|
w,
|
||||||
|
@ -159,14 +162,14 @@ func (r *linkRenderer) renderImage(w util.BufWriter, source []byte, node ast.Nod
|
||||||
page: ctx.DocumentContext().Document,
|
page: ctx.DocumentContext().Document,
|
||||||
destination: string(n.Destination),
|
destination: string(n.Destination),
|
||||||
title: string(n.Title),
|
title: string(n.Title),
|
||||||
text: text,
|
text: string(text),
|
||||||
plainText: text,
|
plainText: string(n.Text(source)),
|
||||||
},
|
},
|
||||||
)
|
)
|
||||||
|
|
||||||
ctx.AddIdentity(h.ImageRenderer.GetIdentity())
|
ctx.AddIdentity(h.ImageRenderer.GetIdentity())
|
||||||
|
|
||||||
return ast.WalkSkipChildren, err
|
return ast.WalkContinue, err
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue