2010-03-13 79 views

回答

3

有一個關於如何在RedCloth's specs使用自定義標籤的例子。基本上,你把你需要的新方法放到一個模塊中,然後傳遞給你的RedCloth對象的擴展方法。

下面是把它稱爲在一個跨距中的文本的自定義標籤的一個簡單的例子:

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。

+0

謝謝,這幫助了很多......但是,增加新的擴展http://github.com/jgarber/redcloth/blob/3a0ab611933c97aef288acf5480f7c3656c9b2c1/spec/extension_spec.rb不'噸的工作... – 2010-03-16 08:39:45

+0

我的意思是將它們結合起來 – 2010-03-16 08:56:31

+0

你可以編輯你的問題來舉例說明什麼在你的代碼中不起作用嗎?您鏈接的規格在我的機器上按預期工作。 – agregoire 2010-03-16 13:49:33