diff options
Diffstat (limited to 'vendor')
-rw-r--r-- | vendor/github.com/yuin/goldmark/renderer/html/html.go | 36 | ||||
-rw-r--r-- | vendor/modules.txt | 2 |
2 files changed, 19 insertions, 19 deletions
diff --git a/vendor/github.com/yuin/goldmark/renderer/html/html.go b/vendor/github.com/yuin/goldmark/renderer/html/html.go index b1da368e0..f9521d0fa 100644 --- a/vendor/github.com/yuin/goldmark/renderer/html/html.go +++ b/vendor/github.com/yuin/goldmark/renderer/html/html.go @@ -680,7 +680,7 @@ func (r *Renderer) renderImage(w util.BufWriter, source []byte, node ast.Node, e _, _ = w.Write(util.EscapeHTML(util.URLEscape(n.Destination, true))) } _, _ = w.WriteString(`" alt="`) - _, _ = w.Write(nodeToHTMLText(n, source)) + r.renderAttribute(w, source, n) _ = w.WriteByte('"') if n.Title != nil { _, _ = w.WriteString(` title="`) @@ -770,6 +770,23 @@ func (r *Renderer) renderString(w util.BufWriter, source []byte, node ast.Node, return ast.WalkContinue, nil } +func (r *Renderer) renderAttribute(w util.BufWriter, source []byte, n ast.Node) { + for c := n.FirstChild(); c != nil; c = c.NextSibling() { + if s, ok := c.(*ast.String); ok { + _, _ = r.renderString(w, source, s, true) + } else if t, ok := c.(*ast.String); ok { + _, _ = r.renderText(w, source, t, true) + } else if !c.HasChildren() { + r.Writer.Write(w, c.Text(source)) + if t, ok := c.(*ast.Text); ok && t.SoftLineBreak() { + w.WriteByte('\n') + } + } else { + r.renderAttribute(w, source, c) + } + } +} + var dataPrefix = []byte("data-") // RenderAttributes renders given node's attributes. @@ -1007,20 +1024,3 @@ func IsDangerousURL(url []byte) bool { return hasPrefix(url, bJs) || hasPrefix(url, bVb) || hasPrefix(url, bFile) || 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))) - if t, ok := c.(*ast.Text); ok && t.SoftLineBreak() { - buf.WriteByte('\n') - } - } else { - buf.Write(nodeToHTMLText(c, source)) - } - } - return buf.Bytes() -} diff --git a/vendor/modules.txt b/vendor/modules.txt index 1ede93c2c..ec3e97e0d 100644 --- a/vendor/modules.txt +++ b/vendor/modules.txt @@ -938,7 +938,7 @@ github.com/vmihailenco/tagparser/v2/internal/parser # github.com/wagslane/go-password-validator v0.3.0 ## explicit; go 1.16 github.com/wagslane/go-password-validator -# github.com/yuin/goldmark v1.7.2 +# github.com/yuin/goldmark v1.7.3 ## explicit; go 1.19 github.com/yuin/goldmark github.com/yuin/goldmark/ast |