2009-06-05 9 views
2

Est-ce que quelqu'un sait comment je peux convertir html en texte brut avec Ruby. Eh bien, j'ai besoin de convertir RedCloth en texte brut, de toute façon serait bien. Je ne parle pas seulement de rayer les étiquettes (c'est tout ce que j'ai fait jusqu'à présent). Par exemple, je voudrais une liste ordonnée de conserver les numéros, les listes à puces à utiliser un astérisque pour balles etc.Ruby: Convertir HTML/Redcloth en texte brut

def red_cloth_to_plain_text(s) 
     s = RedCloth.new(s).to_html 
     s = strip_tags(s) 
     s = html_unescape(s) # reverse of html_escape 
     s = undo_red_cloths_html_codes(s) 
     return s 
end 

Peut-être que je dois tenter une RedCloth à formatter le texte brut

Répondre

2

Vous devez créer une nouvelle classe de formatage.

module RedCloth::Formatters 
    module PlainText 
    include RedCloth::Formatters::Base 
    # ... 
    end 
end 

Je ne vais pas écrire votre code pour vous aujourd'hui, mais c'est très facile à faire. Lisez la source RedCloth si vous en doutez: ce n'est que 346 lignes pour le formateur HTML.

Ainsi, une fois que vous avez votre formatter PlainText vous patcher la classe et de l'utiliser:

module RedCloth 
    class TextileDoc 
    def to_txt(*rules) 
     apply_rules(rules) 
     to(RedCloth::Formatters::PlainText) 
    end 
    end 
end 

print RedCloth.new(str).to_txt 
0

Ce peut être ce que vous devoir faire. You're not the first to want this, mais je suppose qu'il ne fait pas encore partie de la bibliothèque parce que tout le monde veut que leur texte soit un peu différent.

Questions connexes