Commit 7be19db4 authored by Alfredo Sumaran's avatar Alfredo Sumaran

Set target="_blank" for external links

parent e6daf1f8
...@@ -15,6 +15,9 @@ module Banzai ...@@ -15,6 +15,9 @@ module Banzai
next if link.start_with?(internal_url) next if link.start_with?(internal_url)
node.set_attribute('rel', 'nofollow noreferrer') node.set_attribute('rel', 'nofollow noreferrer')
# Open external links on a new tab
node.set_attribute('target', '_blank')
end end
doc doc
......
...@@ -173,10 +173,20 @@ describe 'GitLab Markdown', feature: true do ...@@ -173,10 +173,20 @@ describe 'GitLab Markdown', feature: true do
expect(link.attr('rel')).to include('noreferrer') expect(link.attr('rel')).to include('noreferrer')
end end
it 'adds _blank to target attribute for external links' do
link = doc.at_css('a:contains("Google")')
expect(link.attr('target')).to match('_blank')
end
it 'ignores internal link' do it 'ignores internal link' do
link = doc.at_css('a:contains("GitLab Root")') link = doc.at_css('a:contains("GitLab Root")')
expect(link.attr('rel')).not_to match 'nofollow' expect(link.attr('rel')).not_to match 'nofollow'
end end
it 'does not set _blank to target attribute for internal links' do
link = doc.at_css('a:contains("GitLab Root")')
expect(link.attr('target')).not_to match '_blank'
end
end end
end end
......
...@@ -136,7 +136,7 @@ But it shouldn't autolink text inside certain tags: ...@@ -136,7 +136,7 @@ But it shouldn't autolink text inside certain tags:
### ExternalLinkFilter ### ExternalLinkFilter
External links get a `rel="nofollow"` attribute: External links get a `rel="nofollow noreferrer"` and `target="_blank"` attributes:
- [Google](https://google.com/) - [Google](https://google.com/)
- [GitLab Root](<%= Gitlab.config.gitlab.url %>) - [GitLab Root](<%= Gitlab.config.gitlab.url %>)
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment