Wiki links:

* fixes wiki links with pipe in table (closes #893, #870, #894)
* prevent wiki link matching on multiple lines

git-svn-id: http://redmine.rubyforge.org/svn/trunk@1280 e93f8b46-1217-0410-a6f0-8f06a7374b81
This commit is contained in:
Jean-Philippe Lang 2008-03-21 17:39:02 +00:00
parent bbf422e229
commit 35a14cbfdc
3 changed files with 18 additions and 3 deletions

View File

@ -239,7 +239,7 @@ module ApplicationHelper
# [[project:|mytext]] # [[project:|mytext]]
# [[project:mypage]] # [[project:mypage]]
# [[project:mypage|mytext]] # [[project:mypage|mytext]]
text = text.gsub(/(!)?(\[\[([^\]\|]+)(\|([^\]\|]+))?\]\])/) do |m| text = text.gsub(/(!)?(\[\[([^\]\n\|]+)(\|([^\]\n\|]+))?\]\])/) do |m|
link_project = project link_project = project
esc, all, page, title = $1, $2, $3, $5 esc, all, page, title = $1, $2, $3, $5
if esc.nil? if esc.nil?

View File

@ -510,7 +510,8 @@ class RedCloth < String
ratts, row = pba( $1, 'tr' ), $2 if row =~ /^(#{A}#{C}\. )(.*)/m ratts, row = pba( $1, 'tr' ), $2 if row =~ /^(#{A}#{C}\. )(.*)/m
cells = [] cells = []
row.split( '|' ).each do |cell| #row.split( /\(?!\[\[[^\]])|(?![^\[]\]\])/ ).each do |cell|
row.split( /\|(?![^\[\|]*\]\])/ ).each do |cell|
ctyp = 'd' ctyp = 'd'
ctyp = 'h' if cell =~ /^_/ ctyp = 'h' if cell =~ /^_/

View File

@ -142,7 +142,21 @@ class ApplicationHelperTest < HelperTestCase
"<pre><div>content</div></pre>" => "<pre>&lt;div&gt;content&lt;/div&gt;</pre>", "<pre><div>content</div></pre>" => "<pre>&lt;div&gt;content&lt;/div&gt;</pre>",
} }
to_test.each { |text, result| assert_equal result, textilizable(text) } 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|" =>
'<tr><td>Cell 11</td><td>Cell 12</td><td>Cell 13</td></tr>' +
'<tr><td>Cell 21</td><td>Cell 22</td></tr>' +
'<tr><td>Cell 31</td><td>Cell 33</td></tr>',
"|[[Page|Link title]]|[[Other Page|Other title]]|\n|Cell 21|[[Last page]]|" =>
'<tr><td><a href="/wiki/ecookbook/Page" class="wiki-page new">Link title</a></td>' +
'<td><a href="/wiki/ecookbook/Other_Page" class="wiki-page new">Other title</a></td>' +
'</tr><tr><td>Cell 21</td><td><a href="/wiki/ecookbook/Last_page" class="wiki-page new">Last page</a></td></tr>'
}
@project = Project.find(1)
to_test.each { |text, result| assert_equal "<table>#{result}</table>", textilizable(text).gsub(/[\t\n]/, '') }
end end
def test_macro_hello_world def test_macro_hello_world