mirror of
https://github.com/gohugoio/hugo.git
synced 2024-11-07 20:30:36 -05:00
markup/goldmark: Add warning (using Warnidf) on Goldmark <!-- raw HTML omitted -->
Fixes #12997
This commit is contained in:
parent
30d9aea860
commit
62a96cef7f
3 changed files with 34 additions and 5 deletions
|
@ -22,6 +22,7 @@ const (
|
|||
|
||||
WarnFrontMatterParamsOverrides = "warning-frontmatter-params-overrides"
|
||||
WarnRenderShortcodesInHTML = "warning-rendershortcodes-in-html"
|
||||
WarnGoldmarkRawHTML = "warning-goldmark-raw-html"
|
||||
)
|
||||
|
||||
// Field/method names with special meaning.
|
||||
|
|
|
@ -802,3 +802,28 @@ H~2~0
|
|||
"<p>1<sup>st</sup></p>",
|
||||
)
|
||||
}
|
||||
|
||||
// Issue 12997.
|
||||
func TestGoldmarkRawHTMLWarning(t *testing.T) {
|
||||
files := `
|
||||
-- hugo.toml --
|
||||
disableKinds = ['home','rss','section','sitemap','taxonomy','term']
|
||||
markup.goldmark.renderer.unsafe = false
|
||||
-- content/p1.md --
|
||||
---
|
||||
title: "p1"
|
||||
---
|
||||
<div>Some raw HTML</div>
|
||||
-- layouts/_default/single.html --
|
||||
{{ .Content }}
|
||||
`
|
||||
|
||||
b := hugolib.Test(t, files, hugolib.TestOptWarn())
|
||||
|
||||
b.AssertFileContent("public/p1/index.html", "<!-- raw HTML omitted -->")
|
||||
b.AssertLogContains("WARN Raw HTML omitted from \"/content/p1.md\"; see https://gohugo.io/getting-started/configuration-markup/#rendererunsafe\nYou can suppress this warning by adding the following to your site configuration:\nignoreLogs = ['warning-goldmark-raw-html']")
|
||||
|
||||
b = hugolib.Test(t, strings.ReplaceAll(files, "markup.goldmark.renderer.unsafe = false", "markup.goldmark.renderer.unsafe = true"), hugolib.TestOptWarn())
|
||||
b.AssertFileContent("public/p1/index.html", "! <!-- raw HTML omitted -->")
|
||||
b.AssertLogContains("! WARN")
|
||||
}
|
||||
|
|
|
@ -159,6 +159,14 @@ func (r *hugoContextRenderer) renderHTMLBlock(
|
|||
w util.BufWriter, source []byte, node ast.Node, entering bool,
|
||||
) (ast.WalkStatus, error) {
|
||||
n := node.(*ast.HTMLBlock)
|
||||
var p any
|
||||
ctx, ok := w.(*render.Context)
|
||||
if ok {
|
||||
p, _ = render.GetPageAndPageInner(ctx)
|
||||
}
|
||||
if !r.Unsafe {
|
||||
r.logger.Warnidf(constants.WarnGoldmarkRawHTML, "Raw HTML omitted from %q; see https://gohugo.io/getting-started/configuration-markup/#rendererunsafe", p)
|
||||
}
|
||||
if entering {
|
||||
if r.Unsafe {
|
||||
l := n.Lines().Len()
|
||||
|
@ -168,11 +176,6 @@ func (r *hugoContextRenderer) renderHTMLBlock(
|
|||
var stripped bool
|
||||
linev, stripped = r.stripHugoCtx(linev)
|
||||
if stripped {
|
||||
var p any
|
||||
ctx, ok := w.(*render.Context)
|
||||
if ok {
|
||||
p, _ = render.GetPageAndPageInner(ctx)
|
||||
}
|
||||
r.logger.Warnidf(constants.WarnRenderShortcodesInHTML, ".RenderShortcodes detected inside HTML block in %q; this may not be what you intended, see https://gohugo.io/methods/page/rendershortcodes/#limitations", p)
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in a new issue