2010-12-08 18 views
2

Ich habe mit RedCloth Klartext in einem Formular gespeichert und konvertiert es in HTML. Zum Beispiel schreibt dies in meiner Form, und es zu speichern, wäre es genau die gleiche Art, wie ich es geschrieben hätte machen anzuzeigen:Wie RedCloth.to_html wieder in bearbeitbare Vanille Text konvertieren?

This sentence 
gets inserted into it 
proper html syntax 
to preserve line breakage. 

Mit diesem Code:

def parse_code 
    self.text = RedCloth.new(text).to_html 
end 

Und dann kann ich wieder anzuzeigen es mit dies:

= raw post.text 

Aber wenn ich es zu bearbeiten, es kehrt zu mir:

<p>This sentence</p> 
<p>gets inserted into it</p> 
<p>proper html syntax</p> 
<p>to preserve line breakage</p> 

Wie kann ich es machen, so dass es, wenn ich es bearbeite, genauso aussieht wie vor dem Speichern?

Danke!

Antwort

3

würde ich die Textil Code verlassen in Textil gespeichert und die Umwandlung tun nur in der Ansicht HTML:

= raw RedCloth.new(@post.text).to_html 

Konvertieren zwischen Textil- und HTML fühlt sich nicht eine gute Praxis. Ihre parse_code Methode scheint, dass es Ihren Text in HTML konvertiert wurde .. und dann auf dem DB gespeichert.

Wenn Sie jedoch HTML in Textile konvertieren möchten, ist vielleicht clothred für Sie oder lesen Sie this blog.

+0

Das wäre die ideale Antwort, imo. Wenn Sie eine Menge bereits existierender Daten als HTML gespeichert haben, finden Sie in meiner Lösung. –

+0

Das Problem damit ist, dass, wenn ich es ohne RedCloth html in es speichern, dann wird es als eine durchgehende Zeichenfolge speichern, und später kann ich keine Seitenumbrüche hinzufügen..right? Oder liege ich falsch, bin ich mir nicht sicher .. – Trip

+0

Wow, ich hab's! Danke fifyurgiri. Ich wünschte, ich hätte deine Antwort, bevor ich mit RedCloth angefangen habe. Klappt wunderbar. – Trip

1

Bearbeiten: Shoot! Ich habe die Frage missverstanden!

würden Sie, dass Textbereich Wert zuweisen zurück zu Textil mit ClothRed:

ClothRed.new(html).to_textile 

Entschuldigen Sie!

+0

Hey Chuck, danke für die Antwort, aber wie würde ich Ihre Antwort implementieren, wenn mein Formular sagt '= f.text_area: text' – Trip

+0

Meine Antwort aktualisiert. Ich habe missverstanden, was du wolltest. Es tut mir Leid! –

+0

Chuck, du bist der Beste! Vielen Dank. Ich muss ein wenig Nachforschungen anstellen, um das sinnvoll zu machen. Ich denke jetzt an die ganze Aufgabe. Speichern der Daten mit dem formatierten Text und Abrufen der formatierten Daten ohne Tags in einem bearbeitbaren Textbereich. "StoffRot"? Was für ein kreativer Name .. Haha. – Trip

0

Wenn ich Sie richtig verstanden habe, speichern Sie die HTML-Ausgabe in der Datenbank. Speichern Sie die rohen Textile-Inhalte und konvertieren Sie sie anschließend in HTML, wenn Sie sie dem Benutzer zeigen.

+0

Ah interessant. Nicht zu viel Thema, aber wie würde ich es formatiert speichern und es wieder abrufen können? Oder besser noch, gibt es einen Blog dazu? Ich kann keinen finden. Danke Veeti! – Trip