Changes
2 changed files (+16/-9)
-
-
@@ -322,7 +322,7 @@ func postProcess(ctx *RenderContext, procs []processor, input io.Reader, outputnode = node.FirstChild } visitNode(ctx, procs, node, true) visitNode(ctx, procs, procs, node) newNodes := make([]*html.Node, 0, 5)
-
@@ -354,7 +354,7 @@ func postProcess(ctx *RenderContext, procs []processor, input io.Reader, outputreturn nil } func visitNode(ctx *RenderContext, procs []processor, node *html.Node, visitText bool) { func visitNode(ctx *RenderContext, procs, textProcs []processor, node *html.Node) { // Add user-content- to IDs if they don't already have them for idx, attr := range node.Attr { if attr.Key == "id" && !(strings.HasPrefix(attr.Val, "user-content-") || blackfridayExtRegex.MatchString(attr.Val)) {
-
@@ -362,16 +362,14 @@ func visitNode(ctx *RenderContext, procs []processor, node *html.Node, visitText} if attr.Key == "class" && attr.Val == "emoji" { visitText = false textProcs = nil } } // We ignore code, pre and already generated links. // We ignore code and pre. switch node.Type { case html.TextNode: if visitText { textNode(ctx, procs, node) } textNode(ctx, textProcs, node) case html.ElementNode: if node.Data == "img" { for i, attr := range node.Attr {
-
@@ -390,7 +388,8 @@ func visitNode(ctx *RenderContext, procs []processor, node *html.Node, visitTextnode.Attr[i] = attr } } else if node.Data == "a" { visitText = false // Restrict text in links to emojis textProcs = emojiProcessors } else if node.Data == "code" || node.Data == "pre" { return } else if node.Data == "i" {
-
@@ -416,7 +415,7 @@ func visitNode(ctx *RenderContext, procs []processor, node *html.Node, visitText} } for n := node.FirstChild; n != nil; n = n.NextSibling { visitNode(ctx, procs, n, visitText) visitNode(ctx, procs, textProcs, n) } } // ignore everything else
-
-
-
@@ -391,5 +391,13 @@ func TestRenderSiblingImages_Issue12925(t *testing.T) {res, err := RenderRawString(&markup.RenderContext{}, testcase) assert.NoError(t, err) assert.Equal(t, expected, res) } func TestRenderEmojiInLinks_Issue12331(t *testing.T) { testcase := `[Link with emoji :moon: in text](https://gitea.io)` expected := `<p><a href="https://gitea.io" rel="nofollow">Link with emoji <span class="emoji" aria-label="waxing gibbous moon">🌔</span> in text</a></p> ` res, err := RenderString(&markup.RenderContext{}, testcase) assert.NoError(t, err) assert.Equal(t, expected, res) }
-