mirror of
https://github.com/yuin/goldmark
synced 2025-03-04 23:04:52 +00:00
Fix #321
This commit is contained in:
parent
175c5ecd0c
commit
20df1691ad
2 changed files with 22 additions and 1 deletions
|
|
@ -134,3 +134,10 @@ We're talking about the internet --- 'net for short. Let's rock 'n roll!
|
||||||
//- - - - - - - - -//
|
//- - - - - - - - -//
|
||||||
<p>We’re talking about the internet — ’net for short. Let’s rock ’n roll!</p>
|
<p>We’re talking about the internet — ’net for short. Let’s rock ’n roll!</p>
|
||||||
//= = = = = = = = = = = = = = = = = = = = = = = =//
|
//= = = = = = = = = = = = = = = = = = = = = = = =//
|
||||||
|
|
||||||
|
19: Quotes in alt text
|
||||||
|
//- - - - - - - - -//
|
||||||
|

|
||||||
|
//- - - - - - - - -//
|
||||||
|
<p><img src="https://example.com/image.jpg" alt="Nice & day, isn’t it?"></p>
|
||||||
|
//= = = = = = = = = = = = = = = = = = = = = = = =//
|
||||||
|
|
|
||||||
|
|
@ -571,7 +571,7 @@ func (r *Renderer) renderImage(w util.BufWriter, source []byte, node ast.Node, e
|
||||||
_, _ = w.Write(util.EscapeHTML(util.URLEscape(n.Destination, true)))
|
_, _ = w.Write(util.EscapeHTML(util.URLEscape(n.Destination, true)))
|
||||||
}
|
}
|
||||||
_, _ = w.WriteString(`" alt="`)
|
_, _ = w.WriteString(`" alt="`)
|
||||||
_, _ = w.Write(util.EscapeHTML(n.Text(source)))
|
_, _ = w.Write(nodeToHTMLText(n, source))
|
||||||
_ = w.WriteByte('"')
|
_ = w.WriteByte('"')
|
||||||
if n.Title != nil {
|
if n.Title != nil {
|
||||||
_, _ = w.WriteString(` title="`)
|
_, _ = w.WriteString(` title="`)
|
||||||
|
|
@ -840,3 +840,17 @@ func IsDangerousURL(url []byte) bool {
|
||||||
return bytes.HasPrefix(url, bJs) || bytes.HasPrefix(url, bVb) ||
|
return bytes.HasPrefix(url, bJs) || bytes.HasPrefix(url, bVb) ||
|
||||||
bytes.HasPrefix(url, bFile) || bytes.HasPrefix(url, bData)
|
bytes.HasPrefix(url, bFile) || bytes.HasPrefix(url, bData)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func nodeToHTMLText(n ast.Node, source []byte) []byte {
|
||||||
|
var buf bytes.Buffer
|
||||||
|
for c := n.FirstChild(); c != nil; c = c.NextSibling() {
|
||||||
|
if s, ok := c.(*ast.String); ok && s.IsCode() {
|
||||||
|
buf.Write(s.Text(source))
|
||||||
|
} else if !c.HasChildren() {
|
||||||
|
buf.Write(util.EscapeHTML(c.Text(source)))
|
||||||
|
} else {
|
||||||
|
buf.Write(nodeToHTMLText(c, source))
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return buf.Bytes()
|
||||||
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue