Module: Formatize::Helper
- Defined in:
- lib/formatize/helper.rb
Instance Method Summary collapse
-
#markdown(text, *flags) ⇒ Object
Accepts a string of Markdown / and one or more flags.
-
#textilize(text, *flags) ⇒ Object
Accepts a string of Textile http://redcloth.org/textile and one or more flags.
-
#textilize_without_paragraph(text, *flags) ⇒ Object
Delegates to
textilize
but strips the surrounding<p>
tags.
Instance Method Details
#markdown(text, *flags) ⇒ Object
Accepts a string of Markdown / and one or more flags. Often, the default behavior will be suitable and you will not have to pass it any flags:
markdown("We are using __Markdown__ now!")
# => "<p>We are using <strong>Markdown</strong> now!</p>"
When necessary, flags are listed as such:
markdown("(snip)", :flag1, :flag2, :flag3)
# => "(snip)"
The bluecloth
documentation http://rubydoc.info/gems/bluecloth/BlueCloth lists the available flags.
It sanitizes the input using Rails’ sanitize
prior to parsing. There are two ways to bypass pre-parsing sanitization:
-
Pass a string that has been marked HTML safe. (Preferred).
-
Use the special
:safe
flag, which is not passed on to the parser. _(Deprecated in 1.1, removed in 2.0)._
73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 |
# File 'lib/formatize/helper.rb', line 73 def markdown(text, *flags) require 'bluecloth' if safe = flags.delete(:safe) ActiveSupport::Deprecation.warn('The :safe flag is deprecated. Mark the input HTML safe instead.') end text = sanitize(text) unless text.html_safe? || safe if text.blank? "" else flags_hash = {} flags.each do |flag| flags_hash[flag] = true end BlueCloth.new(text, flags_hash).to_html end.html_safe end |
#textilize(text, *flags) ⇒ Object
Accepts a string of Textile http://redcloth.org/textile and one or more flags. Often, the default behavior will be suitable and you will not have to pass it any flags:
textilize("*This is Textile!* Rejoice!")
# => "<p><strong>This is Textile!</strong> Rejoice!</p>"
When necessary, flags are listed as such:
textilize("(snip)", :flag1, :flag2, :flag3)
# => "(snip)"
The RedCloth
documentation http://redcloth.rubyforge.org/classes/RedCloth/TextileDoc.html lists the available flags.
It sanitizes the input using Rails’ sanitize
prior to parsing. There are two ways to bypass pre-parsing sanitization:
-
Pass a string that has been marked HTML safe. (Preferred).
-
Use the special
:safe
flag, which is not passed on to the parser. _(Deprecated in 1.1, removed in 2.0)._
25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 |
# File 'lib/formatize/helper.rb', line 25 def textilize(text, *flags) require 'RedCloth' if safe = flags.delete(:safe) ActiveSupport::Deprecation.warn('The :safe flag is deprecated. Mark the input HTML safe instead.') end text = sanitize(text) unless text.html_safe? || safe if text.blank? "" else RedCloth.new(text, flags).to_html end.html_safe end |
#textilize_without_paragraph(text, *flags) ⇒ Object
Delegates to textilize
but strips the surrounding <p>
tags.
44 45 46 47 48 49 |
# File 'lib/formatize/helper.rb', line 44 def textilize_without_paragraph(text, *flags) textiled = textilize(text, *flags) if textiled[0..2] == "<p>" then textiled = textiled[3..-1] end if textiled[-4..-1] == "</p>" then textiled = textiled[0..-5] end return textiled end |