Fix double brackets being linkified in wiki markdown
This commit is contained in:
		
							parent
							
								
									076ab2e8e0
								
							
						
					
					
						commit
						1b530f9664
					
				| 
						 | 
				
			
			@ -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 New Issue