diff options
author | Felipe Artur <felipefac@gmail.com> | 2016-06-22 10:47:48 -0300 |
---|---|---|
committer | Felipe Artur <felipefac@gmail.com> | 2016-06-22 10:47:48 -0300 |
commit | 2674b548601b279ada46d4b218a9def6fd5b9f6d (patch) | |
tree | ca1f09225e4d5b80c800af521735bf34f04e16d0 /lib/banzai/filter/external_link_filter.rb | |
parent | 8447c6b180297840d835a609d95808834f498d87 (diff) | |
parent | 6f6c6f68ea7cb976b6c1598e705ba8b2bdaf05a1 (diff) | |
download | gitlab-ce-2674b548601b279ada46d4b218a9def6fd5b9f6d.tar.gz |
merge master into issue_3359_3
Diffstat (limited to 'lib/banzai/filter/external_link_filter.rb')
-rw-r--r-- | lib/banzai/filter/external_link_filter.rb | 13 |
1 files changed, 2 insertions, 11 deletions
diff --git a/lib/banzai/filter/external_link_filter.rb b/lib/banzai/filter/external_link_filter.rb index f73ecfc9418..0a29c547a4d 100644 --- a/lib/banzai/filter/external_link_filter.rb +++ b/lib/banzai/filter/external_link_filter.rb @@ -3,17 +3,8 @@ module Banzai # HTML Filter to modify the attributes of external links class ExternalLinkFilter < HTML::Pipeline::Filter def call - doc.search('a').each do |node| - link = node.attr('href') - - next unless link - - # Skip non-HTTP(S) links - next unless link.start_with?('http') - - # Skip internal links - next if link.start_with?(internal_url) - + # Skip non-HTTP(S) links and internal links + doc.xpath("descendant-or-self::a[starts-with(@href, 'http') and not(starts-with(@href, '#{internal_url}'))]").each do |node| node.set_attribute('rel', 'nofollow noreferrer') node.set_attribute('target', '_blank') end |