diff options
-rw-r--r-- | Bugzilla/Markdown.pm | 18 |
1 files changed, 17 insertions, 1 deletions
diff --git a/Bugzilla/Markdown.pm b/Bugzilla/Markdown.pm index 7b5d475f8..bbb5b0f27 100644 --- a/Bugzilla/Markdown.pm +++ b/Bugzilla/Markdown.pm @@ -237,7 +237,7 @@ sub _DoAnchors { }xsge; # - # Last, handle reference-style shortcuts: [link text] + # Handle reference-style shortcuts: [link text] # These must come last in case you've also got [link test][1] # or [link test](/foo) # @@ -256,6 +256,22 @@ sub _DoAnchors { $self->_GenerateAnchor($whole_match, $link_text, $link_id); }xsge; + # Last, handle "naked" references + # Caveat, does not handle ;http://amazon.com + my $safe_url_regexp = Bugzilla::Template::SAFE_URL_REGEXP(); + $text =~ s{ + ( + (^|(?<![;^"'<>])) # negative lookbehind, including ';' in '<' + ( # wrap url in $3 + (?:https?|ftp):[^'">\s]+\w + ) + ) + }{ + my $whole_match = $3; + my $url = $whole_match; + $self->_GenerateAnchor($whole_match, $url, undef, $url, undef); + }xsge; + return $text; } |