扩展RedCloth gem

时间:2010-03-13 17:24:25

标签: ruby-on-rails rubygems

我想添加一个新的纺织品标签,例如 h1。,但它的名称将是地图。

所以我找到了following article,但它不适用于RedCloth 4.2.2

由于

1 个答案:

答案 0 :(得分:3)

有一个关于如何在RedCloth's specs中使用自定义标签的示例。基本上,您将所需的新方法放在模块中,然后将其传递给RedCloth对象的extend方法。

以下是自定义标记的快速示例,该标记将调用的文本放在范围中:

module MappingExtension
  def map(opts)
    html  = %Q{<span class="map">#{opts[:text]}</span>\n}
  end
end

require 'redcloth'

text = "The next line will contain a map:\n\nmap. map"
r = RedCloth.new text
r.extend MappingExtension

r.to_html

# "<p>The next line will contain a map:</p>\n<span class="map">map</span>\n"

如果要在Rails项目中使用它,您可能希望覆盖ActionView的textilize文本助手,以便它使用您的自定义标记扩展RedCloth。