mirror of
https://codeberg.org/forgejo/forgejo.git
synced 2024-12-15 23:38:04 +00:00
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
This commit is contained in:
parent
d77176912b
commit
c8650aef0a
2 changed files with 13 additions and 7 deletions
|
@ -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
|
||||
|
|
|
@ -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(
|
||||
|
|
Loading…
Reference in a new issue