Fix double brackets being linkified in wiki markdown
This commit is contained in:
parent
076ab2e8e0
commit
1b530f9664
4 changed files with 37 additions and 0 deletions
|
@ -0,0 +1,5 @@
|
|||
---
|
||||
title: Fix double-brackets being linkified in wiki markdown
|
||||
merge_request: 18524
|
||||
author: brewingcode
|
||||
type: fixed
|
|
@ -58,6 +58,9 @@ module Banzai
|
|||
|
||||
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 @@ feature 'Projects > Wiki > User previews markdown changes', :js do
|
|||
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 @@ describe Banzai::Filter::GollumTagsFilter do
|
|||
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
|
||||
|
|
Loading…
Reference in a new issue