2009-06-05 10 views
2

Weiß jemand, wie ich HTML mit Ruby in einfachen Text konvertieren kann. Nun, ich muss RedCloth wirklich in Klartext umwandeln, beides wäre in Ordnung.Ruby: Konvertieren HTML/Redcloth in Text

Ich spreche nicht nur über das Ausziehen der Tags (das ist alles, was ich bisher getan habe). Zum Beispiel würde ich eine geordnete Liste wie die Zahlen, ungeordnete Listen behalten einen Stern für Kugeln usw.

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 

Vielleicht muss ich

Antwort

2

Sie müssen eine neue Formatierungsklasse erstellen.

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

Ich werde heute nicht Ihren Code für Sie schreiben, aber das ist sehr einfach zu tun. Lesen Sie die RedCloth-Quelle, wenn Sie an mir zweifeln: Es sind nur 346 Zeilen für den HTML-Formatierer.

Also, wenn Sie Ihren Klartext Formatierer haben Sie die Klasse Patch und es verwenden:

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

eine RedCloth in einfachen Text-Formatierungs versuchen zu verwenden, das sein kann, was Sie zu tun haben. You're not the first to want this, aber ich vermute, dass es noch nicht Teil der Bibliothek ist, weil jeder seinen Klartext ein wenig anders haben will.