diff --git a/lib/banzai/filter/wiki_link_gollum_filter.rb b/lib/banzai/filter/wiki_link_gollum_filter.rb index 97c5ee1f34c45e905176c1b2516d1d521f74db04..df29269d7e7eddfdd61699386503bda271f98641 100644 --- a/lib/banzai/filter/wiki_link_gollum_filter.rb +++ b/lib/banzai/filter/wiki_link_gollum_filter.rb @@ -30,7 +30,7 @@ class WikiLinkGollumFilter < HTML::Pipeline::Filter # Pattern to match allowed image extensions ALLOWED_IMAGE_EXTENSIONS = /(jpg|png|gif|svg|bmp)\z/i - CSS_WIKILINK_STYLE = 'a[data-wikilink]' + CSS_WIKILINK_STYLE = 'a[href][data-wikilink]' XPATH_WIKILINK_STYLE = Gitlab::Utils::Nokogiri.css_to_xpath(CSS_WIKILINK_STYLE).freeze def call diff --git a/spec/lib/banzai/filter/wiki_link_gollum_filter_spec.rb b/spec/lib/banzai/filter/wiki_link_gollum_filter_spec.rb index d021bbca4cc023f44e424a9c03d4a4b5a711a4ce..0124beb4a8512d7874ce42f73d8ee61db7e4db5a 100644 --- a/spec/lib/banzai/filter/wiki_link_gollum_filter_spec.rb +++ b/spec/lib/banzai/filter/wiki_link_gollum_filter_spec.rb @@ -192,6 +192,14 @@ end # rubocop:enable Layout/LineLength + context 'when the href gets sanitized out' do + it 'ignores the link' do + doc = pipeline_filter('[[test|http://]]', wiki: wiki) + + expect(doc.at_css('a')['data-gollum']).to be_nil + end + end + def pipeline_filter(text, context = {}) context = { project: project, no_sourcepos: true }.merge(context)