markup/goldmark: Rename/reorder the hook methods
authorBjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com>
Thu, 15 Jul 2021 07:05:13 +0000 (09:05 +0200)
committerBjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com>
Thu, 15 Jul 2021 08:14:52 +0000 (10:14 +0200)
To make them easier to follow.

See #8755

markup/goldmark/render_hooks.go

index 9c159f9cf358a2a5c97284eec6dd7b00c0e0a89c..0e942e6f57ad3c6fb15091540ad92dec6aa49c25 100644 (file)
@@ -179,33 +179,6 @@ func renderAttributes(w util.BufWriter, skipClass bool, attributes ...ast.Attrib
        }
 }
 
-// Fall back to the default Goldmark render funcs. Method below borrowed from:
-// https://github.com/yuin/goldmark/blob/b611cd333a492416b56aa8d94b04a67bf0096ab2/renderer/html/html.go#L404
-func (r *hookedRenderer) renderDefaultImage(w util.BufWriter, source []byte, node ast.Node, entering bool) (ast.WalkStatus, error) {
-       if !entering {
-               return ast.WalkContinue, nil
-       }
-       n := node.(*ast.Image)
-       _, _ = w.WriteString("<img src=\"")
-       if r.Unsafe || !html.IsDangerousURL(n.Destination) {
-               _, _ = w.Write(util.EscapeHTML(util.URLEscape(n.Destination, true)))
-       }
-       _, _ = w.WriteString(`" alt="`)
-       _, _ = w.Write(n.Text(source))
-       _ = w.WriteByte('"')
-       if n.Title != nil {
-               _, _ = w.WriteString(` title="`)
-               r.Writer.Write(w, n.Title)
-               _ = w.WriteByte('"')
-       }
-       if r.XHTML {
-               _, _ = w.WriteString(" />")
-       } else {
-               _, _ = w.WriteString(">")
-       }
-       return ast.WalkSkipChildren, nil
-}
-
 func (r *hookedRenderer) renderImage(w util.BufWriter, source []byte, node ast.Node, entering bool) (ast.WalkStatus, error) {
        n := node.(*ast.Image)
        var h hooks.Renderers
@@ -217,7 +190,7 @@ func (r *hookedRenderer) renderImage(w util.BufWriter, source []byte, node ast.N
        }
 
        if !ok {
-               return r.renderDefaultImage(w, source, node, entering)
+               return r.renderImageDefault(w, source, node, entering)
        }
 
        if entering {
@@ -247,24 +220,29 @@ func (r *hookedRenderer) renderImage(w util.BufWriter, source []byte, node ast.N
 
 // Fall back to the default Goldmark render funcs. Method below borrowed from:
 // https://github.com/yuin/goldmark/blob/b611cd333a492416b56aa8d94b04a67bf0096ab2/renderer/html/html.go#L404
-func (r *hookedRenderer) renderDefaultLink(w util.BufWriter, source []byte, node ast.Node, entering bool) (ast.WalkStatus, error) {
-       n := node.(*ast.Link)
-       if entering {
-               _, _ = w.WriteString("<a href=\"")
-               if r.Unsafe || !html.IsDangerousURL(n.Destination) {
-                       _, _ = w.Write(util.EscapeHTML(util.URLEscape(n.Destination, true)))
-               }
+func (r *hookedRenderer) renderImageDefault(w util.BufWriter, source []byte, node ast.Node, entering bool) (ast.WalkStatus, error) {
+       if !entering {
+               return ast.WalkContinue, nil
+       }
+       n := node.(*ast.Image)
+       _, _ = w.WriteString("<img src=\"")
+       if r.Unsafe || !html.IsDangerousURL(n.Destination) {
+               _, _ = w.Write(util.EscapeHTML(util.URLEscape(n.Destination, true)))
+       }
+       _, _ = w.WriteString(`" alt="`)
+       _, _ = w.Write(n.Text(source))
+       _ = w.WriteByte('"')
+       if n.Title != nil {
+               _, _ = w.WriteString(` title="`)
+               r.Writer.Write(w, n.Title)
                _ = w.WriteByte('"')
-               if n.Title != nil {
-                       _, _ = w.WriteString(` title="`)
-                       r.Writer.Write(w, n.Title)
-                       _ = w.WriteByte('"')
-               }
-               _ = w.WriteByte('>')
+       }
+       if r.XHTML {
+               _, _ = w.WriteString(" />")
        } else {
-               _, _ = w.WriteString("</a>")
+               _, _ = w.WriteString(">")
        }
-       return ast.WalkContinue, nil
+       return ast.WalkSkipChildren, nil
 }
 
 func (r *hookedRenderer) renderLink(w util.BufWriter, source []byte, node ast.Node, entering bool) (ast.WalkStatus, error) {
@@ -278,7 +256,7 @@ func (r *hookedRenderer) renderLink(w util.BufWriter, source []byte, node ast.No
        }
 
        if !ok {
-               return r.renderDefaultLink(w, source, node, entering)
+               return r.renderLinkDefault(w, source, node, entering)
        }
 
        if entering {
@@ -309,6 +287,28 @@ func (r *hookedRenderer) renderLink(w util.BufWriter, source []byte, node ast.No
        return ast.WalkContinue, err
 }
 
+// Fall back to the default Goldmark render funcs. Method below borrowed from:
+// https://github.com/yuin/goldmark/blob/b611cd333a492416b56aa8d94b04a67bf0096ab2/renderer/html/html.go#L404
+func (r *hookedRenderer) renderLinkDefault(w util.BufWriter, source []byte, node ast.Node, entering bool) (ast.WalkStatus, error) {
+       n := node.(*ast.Link)
+       if entering {
+               _, _ = w.WriteString("<a href=\"")
+               if r.Unsafe || !html.IsDangerousURL(n.Destination) {
+                       _, _ = w.Write(util.EscapeHTML(util.URLEscape(n.Destination, true)))
+               }
+               _ = w.WriteByte('"')
+               if n.Title != nil {
+                       _, _ = w.WriteString(` title="`)
+                       r.Writer.Write(w, n.Title)
+                       _ = w.WriteByte('"')
+               }
+               _ = w.WriteByte('>')
+       } else {
+               _, _ = w.WriteString("</a>")
+       }
+       return ast.WalkContinue, nil
+}
+
 func (r *hookedRenderer) renderAutoLink(w util.BufWriter, source []byte, node ast.Node, entering bool) (ast.WalkStatus, error) {
        if !entering {
                return ast.WalkContinue, nil
@@ -324,7 +324,7 @@ func (r *hookedRenderer) renderAutoLink(w util.BufWriter, source []byte, node as
        }
 
        if !ok {
-               return r.renderDefaultAutoLink(w, source, node, entering)
+               return r.renderAutoLinkDefault(w, source, node, entering)
        }
 
        url := string(n.URL(source))
@@ -353,7 +353,7 @@ func (r *hookedRenderer) renderAutoLink(w util.BufWriter, source []byte, node as
 
 // Fall back to the default Goldmark render funcs. Method below borrowed from:
 // https://github.com/yuin/goldmark/blob/5588d92a56fe1642791cf4aa8e9eae8227cfeecd/renderer/html/html.go#L439
-func (r *hookedRenderer) renderDefaultAutoLink(w util.BufWriter, source []byte, node ast.Node, entering bool) (ast.WalkStatus, error) {
+func (r *hookedRenderer) renderAutoLinkDefault(w util.BufWriter, source []byte, node ast.Node, entering bool) (ast.WalkStatus, error) {
        n := node.(*ast.AutoLink)
        if !entering {
                return ast.WalkContinue, nil
@@ -377,23 +377,6 @@ func (r *hookedRenderer) renderDefaultAutoLink(w util.BufWriter, source []byte,
        return ast.WalkContinue, nil
 }
 
-func (r *hookedRenderer) renderDefaultHeading(w util.BufWriter, source []byte, node ast.Node, entering bool) (ast.WalkStatus, error) {
-       n := node.(*ast.Heading)
-       if entering {
-               _, _ = w.WriteString("<h")
-               _ = w.WriteByte("0123456"[n.Level])
-               if n.Attributes() != nil {
-                       r.renderAttributesForNode(w, node)
-               }
-               _ = w.WriteByte('>')
-       } else {
-               _, _ = w.WriteString("</h")
-               _ = w.WriteByte("0123456"[n.Level])
-               _, _ = w.WriteString(">\n")
-       }
-       return ast.WalkContinue, nil
-}
-
 func (r *hookedRenderer) renderHeading(w util.BufWriter, source []byte, node ast.Node, entering bool) (ast.WalkStatus, error) {
        n := node.(*ast.Heading)
        var h hooks.Renderers
@@ -405,7 +388,7 @@ func (r *hookedRenderer) renderHeading(w util.BufWriter, source []byte, node ast
        }
 
        if !ok {
-               return r.renderDefaultHeading(w, source, node, entering)
+               return r.renderHeadingDefault(w, source, node, entering)
        }
 
        if entering {
@@ -438,6 +421,23 @@ func (r *hookedRenderer) renderHeading(w util.BufWriter, source []byte, node ast
        return ast.WalkContinue, err
 }
 
+func (r *hookedRenderer) renderHeadingDefault(w util.BufWriter, source []byte, node ast.Node, entering bool) (ast.WalkStatus, error) {
+       n := node.(*ast.Heading)
+       if entering {
+               _, _ = w.WriteString("<h")
+               _ = w.WriteByte("0123456"[n.Level])
+               if n.Attributes() != nil {
+                       r.renderAttributesForNode(w, node)
+               }
+               _ = w.WriteByte('>')
+       } else {
+               _, _ = w.WriteString("</h")
+               _ = w.WriteByte("0123456"[n.Level])
+               _, _ = w.WriteString(">\n")
+       }
+       return ast.WalkContinue, nil
+}
+
 type links struct {
 }