Fixed that ordered/unordered lists inside table cell are mangled (#14038).
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@11845 e93f8b46-1217-0410-a6f0-8f06a7374b81
This commit is contained in:
parent
28ca9d240a
commit
b3d80d50a3
|
@ -525,11 +525,12 @@ class RedCloth3 < String
|
||||||
tatts = pba( tatts, 'table' )
|
tatts = pba( tatts, 'table' )
|
||||||
tatts = shelve( tatts ) if tatts
|
tatts = shelve( tatts ) if tatts
|
||||||
rows = []
|
rows = []
|
||||||
|
fullrow.gsub!(/([^|])\n/, "\\1<br />")
|
||||||
fullrow.each_line do |row|
|
fullrow.each_line do |row|
|
||||||
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( /(\|)(?![^\[\|]*\]\])/ )[1..-2].each do |cell|
|
row.split( /(\|)(?![^\[\|]*\]\])/ )[1..-2].each do |cell|
|
||||||
|
Rails.logger.debug "cell: #{cell}"
|
||||||
next if cell == '|'
|
next if cell == '|'
|
||||||
ctyp = 'd'
|
ctyp = 'd'
|
||||||
ctyp = 'h' if cell =~ /^_/
|
ctyp = 'h' if cell =~ /^_/
|
||||||
|
|
|
@ -268,6 +268,42 @@ EXPECTED
|
||||||
assert_equal expected.gsub(%r{\s+}, ''), to_html(raw).gsub(%r{\s+}, '')
|
assert_equal expected.gsub(%r{\s+}, ''), to_html(raw).gsub(%r{\s+}, '')
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def test_tables_with_lists
|
||||||
|
raw = <<-RAW
|
||||||
|
This is a table with lists:
|
||||||
|
|
||||||
|
|cell11|cell12|
|
||||||
|
|cell21|ordered list
|
||||||
|
# item
|
||||||
|
# item 2|
|
||||||
|
|cell31|unordered list
|
||||||
|
* item
|
||||||
|
* item 2|
|
||||||
|
|
||||||
|
RAW
|
||||||
|
|
||||||
|
expected = <<-EXPECTED
|
||||||
|
<p>This is a table with lists:</p>
|
||||||
|
|
||||||
|
<table>
|
||||||
|
<tr>
|
||||||
|
<td>cell11</td>
|
||||||
|
<td>cell12</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td>cell21</td>
|
||||||
|
<td>ordered list<br /># item<br /># item 2</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td>cell31</td>
|
||||||
|
<td>unordered list<br />* item<br />* item 2</td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
EXPECTED
|
||||||
|
|
||||||
|
assert_equal expected.gsub(%r{\s+}, ''), to_html(raw).gsub(%r{\s+}, '')
|
||||||
|
end
|
||||||
|
|
||||||
def test_textile_should_not_mangle_brackets
|
def test_textile_should_not_mangle_brackets
|
||||||
assert_equal '<p>[msg1][msg2]</p>', to_html('[msg1][msg2]')
|
assert_equal '<p>[msg1][msg2]</p>', to_html('[msg1][msg2]')
|
||||||
end
|
end
|
||||||
|
|
Loading…
Reference in New Issue