diff --git a/app/helpers/application_helper.rb b/app/helpers/application_helper.rb index f3b16bb2..510ecd15 100644 --- a/app/helpers/application_helper.rb +++ b/app/helpers/application_helper.rb @@ -239,7 +239,7 @@ module ApplicationHelper # [[project:|mytext]] # [[project:mypage]] # [[project:mypage|mytext]] - text = text.gsub(/(!)?(\[\[([^\]\|]+)(\|([^\]\|]+))?\]\])/) do |m| + text = text.gsub(/(!)?(\[\[([^\]\n\|]+)(\|([^\]\n\|]+))?\]\])/) do |m| link_project = project esc, all, page, title = $1, $2, $3, $5 if esc.nil? diff --git a/lib/redcloth.rb b/lib/redcloth.rb index 14940cb8..9452c267 100644 --- a/lib/redcloth.rb +++ b/lib/redcloth.rb @@ -510,7 +510,8 @@ class RedCloth < String ratts, row = pba( $1, 'tr' ), $2 if row =~ /^(#{A}#{C}\. )(.*)/m cells = [] - row.split( '|' ).each do |cell| + #row.split( /\(?!\[\[[^\]])|(?![^\[]\]\])/ ).each do |cell| + row.split( /\|(?![^\[\|]*\]\])/ ).each do |cell| ctyp = 'd' ctyp = 'h' if cell =~ /^_/ diff --git a/test/unit/helpers/application_helper_test.rb b/test/unit/helpers/application_helper_test.rb index 2b90b8f4..66499c00 100644 --- a/test/unit/helpers/application_helper_test.rb +++ b/test/unit/helpers/application_helper_test.rb @@ -142,7 +142,21 @@ class ApplicationHelperTest < HelperTestCase "
" => "content
<div>content</div>", } to_test.each { |text, result| assert_equal result, textilizable(text) } - + end + + def test_wiki_links_in_tables + to_test = {"|Cell 11|Cell 12|Cell 13|\n|Cell 21|Cell 22||\n|Cell 31||Cell 33|" => + '