diff options
Diffstat (limited to 'modules')
-rw-r--r-- | modules/markup/html.go | 19 | ||||
-rw-r--r-- | modules/markup/html_test.go | 4 |
2 files changed, 9 insertions, 14 deletions
diff --git a/modules/markup/html.go b/modules/markup/html.go index 8ce8740748..dab6d4e8e5 100644 --- a/modules/markup/html.go +++ b/modules/markup/html.go @@ -171,11 +171,6 @@ type postProcessCtx struct { // processors used by this context. procs []processor - - // if set to true, when an <a> is found, instead of just returning during - // visitNode, it will recursively visit the node exclusively running - // shortLinkProcessorFull with true. - visitLinksForShortLinks bool } // PostProcess does the final required transformations to the passed raw HTML @@ -191,11 +186,10 @@ func PostProcess( ) ([]byte, error) { // create the context from the parameters ctx := &postProcessCtx{ - metas: metas, - urlPrefix: urlPrefix, - isWikiMarkdown: isWikiMarkdown, - procs: defaultProcessors, - visitLinksForShortLinks: true, + metas: metas, + urlPrefix: urlPrefix, + isWikiMarkdown: isWikiMarkdown, + procs: defaultProcessors, } return ctx.postProcess(rawHTML) } @@ -285,9 +279,6 @@ func (ctx *postProcessCtx) visitNode(node *html.Node) { ctx.textNode(node) case html.ElementNode: if node.Data == "a" || node.Data == "code" || node.Data == "pre" { - if node.Data == "a" && ctx.visitLinksForShortLinks { - ctx.visitNodeForShortLinks(node) - } return } for n := node.FirstChild; n != nil; n = n.NextSibling { @@ -302,7 +293,7 @@ func (ctx *postProcessCtx) visitNodeForShortLinks(node *html.Node) { case html.TextNode: shortLinkProcessorFull(ctx, node, true) case html.ElementNode: - if node.Data == "code" || node.Data == "pre" { + if node.Data == "code" || node.Data == "pre" || node.Data == "a" { return } for n := node.FirstChild; n != nil; n = n.NextSibling { diff --git a/modules/markup/html_test.go b/modules/markup/html_test.go index f17d00cd67..f430cb04be 100644 --- a/modules/markup/html_test.go +++ b/modules/markup/html_test.go @@ -222,4 +222,8 @@ func TestRender_ShortLinks(t *testing.T) { "[[some/path/Link #.jpg]]", `<p><a href="`+notencodedImgurl+`" rel="nofollow"><img src="`+notencodedImgurl+`"/></a></p>`, `<p><a href="`+notencodedImgurlWiki+`" rel="nofollow"><img src="`+notencodedImgurlWiki+`"/></a></p>`) + test( + "<p><a href=\"https://example.org\">[[foobar]]</a></p>", + `<p><a href="https://example.org" rel="nofollow">[[foobar]]</a></p>`, + `<p><a href="https://example.org" rel="nofollow">[[foobar]]</a></p>`) } |