Read about our upcoming Code of Conduct on this issue

Commit 2096396f authored by Alex's avatar Alex Committed by Robert Speicher
Browse files

Fix double brackets being linkified in wiki markdown

parent 3139a0d982f1
---
title: Fix double-brackets being linkified in wiki markdown
merge_request: 18524
author: brewingcode
type: fixed
......@@ -58,6 +58,9 @@ class GollumTagsFilter < HTML::Pipeline::Filter
def call
doc.search(".//text()").each do |node|
# Do not perform linking inside <code> blocks
next unless node.ancestors('code').empty?
# A Gollum ToC tag is `[[_TOC_]]`, but due to MarkdownFilter running
# before this one, it will be converted into `[[<em>TOC</em>]]`, so it
# needs special-case handling
......
......@@ -155,4 +155,27 @@ def create_wiki_page(path)
end
end
end
it "does not linkify double brackets inside code blocks as expected" do
click_link 'New page'
page.within '#modal-new-wiki' do
fill_in :new_wiki_path, with: 'linkify_test'
click_button 'Create page'
end
page.within '.wiki-form' do
fill_in :wiki_content, with: <<-HEREDOC
`[[do_not_linkify]]`
```
[[also_do_not_linkify]]
```
HEREDOC
click_on "Preview"
end
expect(page).to have_content("do_not_linkify")
expect(page.html).to include('[[do_not_linkify]]')
expect(page.html).to include('[[also_do_not_linkify]]')
end
end
......@@ -91,6 +91,12 @@
expect(doc.at_css('a').text).to eq 'link-text'
expect(doc.at_css('a')['href']).to eq expected_path
end
it "inside back ticks will be exempt from linkification" do
doc = filter('<code>[[link-in-backticks]]</code>', project_wiki: project_wiki)
expect(doc.at_css('code').text).to eq '[[link-in-backticks]]'
end
end
context 'table of contents' do
......
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