diff --git a/lib/redcloth3.rb b/lib/redcloth3.rb index 3f79ed99b..0adf2076e 100644 --- a/lib/redcloth3.rb +++ b/lib/redcloth3.rb @@ -1016,7 +1016,7 @@ class RedCloth3 < String end OFFTAGS = /(code|pre|kbd|notextile)/ - OFFTAG_MATCH = /(?:(<\/#{ OFFTAGS }>)|(<#{ OFFTAGS }[^>]*>))(.*?)(?=<\/?#{ OFFTAGS }|\Z)/mi + OFFTAG_MATCH = /(?:(<\/#{ OFFTAGS }>)|(<#{ OFFTAGS }[^>]*>))(.*?)(?=<\/?#{ OFFTAGS }\W|\Z)/mi OFFTAG_OPEN = /<#{ OFFTAGS }/ OFFTAG_CLOSE = /<\/?#{ OFFTAGS }/ HASTAG_MATCH = /(<\/?\w[^\n]*?>)/m diff --git a/test/unit/helpers/application_helper_test.rb b/test/unit/helpers/application_helper_test.rb index 05742150b..f61f219ab 100644 --- a/test/unit/helpers/application_helper_test.rb +++ b/test/unit/helpers/application_helper_test.rb @@ -258,6 +258,28 @@ RAW to_test.each { |text, result| assert_equal result, textilizable(text) } end + def test_pre_tags + raw = <<-RAW +Before + +
++ +After +RAW + + expected = <<-EXPECTED +32 +
Before
++<prepared-statement-cache-size>32</prepared-statement-cache-size> ++
After
+EXPECTED + + assert_equal expected.gsub(%r{[\r\n\t]}, ''), textilizable(raw).gsub(%r{[\r\n\t]}, '') + end + def test_syntax_highlight raw = <<-RAW