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 = shelve( tatts ) if tatts
|
||||
rows = []
|
||||
|
||||
fullrow.gsub!(/([^|])\n/, "\\1<br />")
|
||||
fullrow.each_line do |row|
|
||||
ratts, row = pba( $1, 'tr' ), $2 if row =~ /^(#{A}#{C}\. )(.*)/m
|
||||
cells = []
|
||||
row.split( /(\|)(?![^\[\|]*\]\])/ )[1..-2].each do |cell|
|
||||
Rails.logger.debug "cell: #{cell}"
|
||||
next if cell == '|'
|
||||
ctyp = 'd'
|
||||
ctyp = 'h' if cell =~ /^_/
|
||||
|
|
|
@ -268,6 +268,42 @@ EXPECTED
|
|||
assert_equal expected.gsub(%r{\s+}, ''), to_html(raw).gsub(%r{\s+}, '')
|
||||
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
|
||||
assert_equal '<p>[msg1][msg2]</p>', to_html('[msg1][msg2]')
|
||||
end
|
||||
|
|
Loading…
Reference in New Issue