2010-03-13 3 views

Répondre

3

Il y a un exemple sur la façon d'utiliser des balises personnalisées dans RedCloth's specs. Fondamentalement, vous mettez la nouvelle méthode dont vous avez besoin dans un module, et vous le passez à la méthode extend de votre objet RedCloth.

Voici un exemple rapide d'une balise personnalisée qui met le texte, il est appelé avec une durée:

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" 

Si vous voulez utiliser dans un projet Rails, vous voudrez peut-être remplacer l'aide de texte ActionView textilize afin qu'il étend RedCloth avec votre tag personnalisé.

+0

Merci, ça a beaucoup aidé ... Mais l'ajout de nouvelles extensions http://github.com/jgarber/redcloth/blob/3a0ab611933c97aef288acf5480f7c3656c9b2c1/spec/extension_spec.rb doesn't travail ... –

+0

Je veux les combiner –

+0

Pouvez-vous éditer votre question pour donner un exemple de ce qui ne fonctionne pas dans votre code? Les spécifications que vous avez liées fonctionnent comme prévu sur ma machine. – agregoire