diff options
author | mrsdizzie <info@mrsdizzie.com> | 2019-03-27 11:37:54 -0400 |
---|---|---|
committer | techknowlogick <matti@mdranta.net> | 2019-03-27 11:37:54 -0400 |
commit | c8650aef0aefb06ff416912e4ae5f42eaa53ef63 (patch) | |
tree | 58c8e217f32d8f2c85b200eac9fada157e8aaab4 | |
parent | d77176912bccf1dc0ad93366df55f00fee23b498 (diff) | |
download | gitea-c8650aef0aefb06ff416912e4ae5f42eaa53ef63.tar.gz gitea-c8650aef0aefb06ff416912e4ae5f42eaa53ef63.zip |
Change order that PostProcess Processors are run (#6445)
Make sure Processors that work on full links are run first so that
something matching another pattern doesn't alter a link before we get to
it, for example:
https://stackoverflow.com/questions/2896191/what-is-go-used-fore
Fixes #4813
-rw-r--r-- | modules/markup/html.go | 14 | ||||
-rw-r--r-- | modules/markup/html_test.go | 6 |
2 files changed, 13 insertions, 7 deletions
diff --git a/modules/markup/html.go b/modules/markup/html.go index f4c5d97480..e016b67d0c 100644 --- a/modules/markup/html.go +++ b/modules/markup/html.go @@ -152,15 +152,15 @@ func (p *postProcessError) Error() string { type processor func(ctx *postProcessCtx, node *html.Node) var defaultProcessors = []processor{ - mentionProcessor, - shortLinkProcessor, fullIssuePatternProcessor, + fullSha1PatternProcessor, + shortLinkProcessor, + linkProcessor, + mentionProcessor, issueIndexPatternProcessor, crossReferenceIssueIndexPatternProcessor, - fullSha1PatternProcessor, sha1CurrentPatternProcessor, emailAddressProcessor, - linkProcessor, } type postProcessCtx struct { @@ -194,14 +194,14 @@ func PostProcess( } var commitMessageProcessors = []processor{ - mentionProcessor, fullIssuePatternProcessor, + fullSha1PatternProcessor, + linkProcessor, + mentionProcessor, issueIndexPatternProcessor, crossReferenceIssueIndexPatternProcessor, - fullSha1PatternProcessor, sha1CurrentPatternProcessor, emailAddressProcessor, - linkProcessor, } // RenderCommitMessage will use the same logic as PostProcess, but will disable diff --git a/modules/markup/html_test.go b/modules/markup/html_test.go index ff68201995..8d113b18a1 100644 --- a/modules/markup/html_test.go +++ b/modules/markup/html_test.go @@ -113,6 +113,12 @@ func TestRender_links(t *testing.T) { test( "https://foo_bar.example.com/", `<p><a href="https://foo_bar.example.com/" rel="nofollow">https://foo_bar.example.com/</a></p>`) + test( + "https://stackoverflow.com/questions/2896191/what-is-go-used-fore", + `<p><a href="https://stackoverflow.com/questions/2896191/what-is-go-used-fore" rel="nofollow">https://stackoverflow.com/questions/2896191/what-is-go-used-fore</a></p>`) + test( + "https://username:password@gitea.com", + `<p><a href="https://username:password@gitea.com" rel="nofollow">https://username:password@gitea.com</a></p>`) // Test that should *not* be turned into URL test( |