Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/gohugoio/hugo.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
path: root/markup
diff options
context:
space:
mode:
authorJoe Mooring <joe.mooring@veriphor.com>2022-03-02 20:30:57 +0300
committerBjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com>2022-03-02 23:05:33 +0300
commite46e9ceb29581de3a32c8155f7cfd58ab59b2b8f (patch)
treec6b65d99a9ea8aa046187d3045357b8b228e6dbf /markup
parent883e71c96a8b0004943d26e73c830061a2ae872c (diff)
markup/goldmark: Escape image alt attribute
Fixes #9594
Diffstat (limited to 'markup')
-rw-r--r--markup/goldmark/integration_test.go29
-rw-r--r--markup/goldmark/render_hooks.go2
2 files changed, 30 insertions, 1 deletions
diff --git a/markup/goldmark/integration_test.go b/markup/goldmark/integration_test.go
index 16705ad62..89cd5bbb6 100644
--- a/markup/goldmark/integration_test.go
+++ b/markup/goldmark/integration_test.go
@@ -394,3 +394,32 @@ FENCE
builders[i].Build()
}
}
+
+// Issue 9594
+func TestQuotesInImgAltAttr(t *testing.T) {
+ t.Parallel()
+
+ files := `
+-- config.toml --
+[markup.goldmark.extensions]
+ typographer = false
+-- content/p1.md --
+---
+title: "p1"
+---
+!["a"](b.jpg)
+-- layouts/_default/single.html --
+{{ .Content }}
+`
+
+ b := hugolib.NewIntegrationTestBuilder(
+ hugolib.IntegrationTestConfig{
+ T: t,
+ TxtarString: files,
+ },
+ ).Build()
+
+ b.AssertFileContent("public/p1/index.html", `
+ <img src="b.jpg" alt="&quot;a&quot;">
+ `)
+}
diff --git a/markup/goldmark/render_hooks.go b/markup/goldmark/render_hooks.go
index d5e35380a..138a60d26 100644
--- a/markup/goldmark/render_hooks.go
+++ b/markup/goldmark/render_hooks.go
@@ -175,7 +175,7 @@ func (r *hookedRenderer) renderImageDefault(w util.BufWriter, source []byte, nod
_, _ = w.Write(util.EscapeHTML(util.URLEscape(n.Destination, true)))
}
_, _ = w.WriteString(`" alt="`)
- _, _ = w.Write(n.Text(source))
+ _, _ = w.Write(util.EscapeHTML(n.Text(source)))
_ = w.WriteByte('"')
if n.Title != nil {
_, _ = w.WriteString(` title="`)