diff --git a/lib/redcloth3.rb b/lib/redcloth3.rb index 0c44346..f9c9054 100644 --- a/lib/redcloth3.rb +++ b/lib/redcloth3.rb @@ -525,7 +525,7 @@ class RedCloth3 < String tatts = pba( tatts, 'table' ) tatts = shelve( tatts ) if tatts rows = [] - fullrow.gsub!(/([^|])\n/, "\\1
") + fullrow.gsub!(/([^|\s])\s*\n/, "\\1
") fullrow.each_line do |row| ratts, row = pba( $1, 'tr' ), $2 if row =~ /^(#{A}#{C}\. )(.*)/m cells = [] diff --git a/test/unit/lib/redmine/wiki_formatting/textile_formatter_test.rb b/test/unit/lib/redmine/wiki_formatting/textile_formatter_test.rb index 6d81653..65a91b2 100644 --- a/test/unit/lib/redmine/wiki_formatting/textile_formatter_test.rb +++ b/test/unit/lib/redmine/wiki_formatting/textile_formatter_test.rb @@ -249,6 +249,28 @@ EXPECTED assert_equal expected.gsub(%r{\s+}, ''), to_html(raw).gsub(%r{\s+}, '') end + def test_table_with_trailing_whitespace + raw = <<-RAW +This is a table with trailing whitespace in one row: + +|cell11|cell12| +|cell21|cell22| +|cell31|cell32| +RAW + + expected = <<-EXPECTED +

This is a table with trailing whitespace in one row:

+ + + + + +
cell11cell12
cell21cell22
cell31cell32
+EXPECTED + + assert_equal expected.gsub(%r{\s+}, ''), to_html(raw).gsub(%r{\s+}, '') + end + def test_table_with_line_breaks raw = <<-RAW This is a table with line breaks: