Commit e1c95655a231e4eadfd9500c7c763c8e9d9afc57

Authored by Antonio Terceiro
Committed by Joenio Costa
1 parent 1607e1bb

Disable hard line breaks

Without this, single line breaks withing a paragraph get translated to a
HTML <br/>, which is completely annoying *and* counter-intuitive in
comparison with most markup languages like Textile.
app/models/textile_article.rb
@@ -28,7 +28,9 @@ class TextileArticle &lt; TextArticle @@ -28,7 +28,9 @@ class TextileArticle &lt; TextArticle
28 28
29 def convert_to_html(textile) 29 def convert_to_html(textile)
30 @@sanitizer ||= HTML::WhiteListSanitizer.new 30 @@sanitizer ||= HTML::WhiteListSanitizer.new
31 - @@sanitizer.sanitize(RedCloth.new(textile|| '').to_html) 31 + converter = RedCloth.new(textile|| '')
  32 + converter.hard_breaks = false
  33 + @@sanitizer.sanitize(converter.to_html)
32 end 34 end
33 35
34 end 36 end
test/unit/textile_article_test.rb
@@ -182,6 +182,10 @@ class TextileArticleTest &lt; Test::Unit::TestCase @@ -182,6 +182,10 @@ class TextileArticleTest &lt; Test::Unit::TestCase
182 assert_not_equal '<script>alert(1)</script>', build_article(nil, :abstract => '<script>alert(1)</script>').lead 182 assert_not_equal '<script>alert(1)</script>', build_article(nil, :abstract => '<script>alert(1)</script>').lead
183 end 183 end
184 184
  185 + should 'not add hard breaks for single line breaks' do
  186 + assert_equal "<p>one\nparagraph</p>", build_article("one\nparagraph").to_html
  187 + end
  188 +
185 protected 189 protected
186 190
187 def build_article(input = nil, options = {}) 191 def build_article(input = nil, options = {})