2008-09-24 9 views
11

Ich versuche, den in StackOverflow verwendeten WMD-Editor zu implementieren, um grundlegende Wiki-Stil-Funktionen zu erstellen. Ich bin soweit, dass es Zeit ist, in der Datenbank zu speichern, aber ich bin unsicher, was ich speichern soll.Inhalt des WMD-Editor-Steuerelements speichern

Wenn ich den erzeugten HTML-Code speichere, kann ich ihn korrekt abrufen und anzeigen, aber bei der erneuten Bearbeitung stehe ich vor der Bearbeitung von HTML, nicht Markdown. Wenn ich jedoch den Markdown speichere, kann ich keine Möglichkeit sehen, diesen zurück in HTML umzuwandeln, um ihn anzuzeigen, und wenn ich StackOverflow betrachte, wird der HTML-Code des Browsers gesendet.

Ich vermute, dass ich nicht beide speichern muss, also was für eine einfache Sache vermisse ich?

Antwort

6

Absolut den Markdown-Code speichern, wie sie eingegeben durch der Benutzer.

Dann brauchen Sie einen Markdown-Konverter, der es in HTML umwandelt, um es anzuzeigen.

Sie werden eine Menge von diesen bei
http://en.wikipedia.org/wiki/Markdown#Converters
und
http://markdown.infogami.com/

Ich würde dagegen stimmen mit JS in Ihrem Fall finden. Es scheint ein .NET implementation zu sein, aber ich kann Ihnen nicht sagen, wie gut es ist.

Beim Rendern Ihrer Seite müssen Sie den Markdown-Code an einen Konverter wie oben übergeben und dann das zurückgegebene HTML ausgeben.

Wenn die Leistung ein Problem darstellt, können Sie auch den Markdown-Code (für die spätere Bearbeitung) UND den HTML-Code (zum Anzeigen) in der Datenbank speichern. Auf diese Weise wird es nur einmal konvertiert.

+0

Danke Lasar, ich hatte tatsächlich die aspnetresources Seite besucht, aber den Link zum Quellcode total vermisst! – tags2k

+0

-1 wäre es nicht effizienter, einmal zu konvertieren und zu speichern und es ohne Konvertierung in HTML wieder anzuzeigen? Ich meine Inhalte werden häufiger angezeigt als bearbeitet werden. – Eimantas

+0

@Lasar: Irgendwelche Tutorials zum Speichern von Markdown und HTML mit JavaScript? :). Ich verstehe diese Lösung nicht, jedes Beispiel ist klarer – Loint

-1

Ich würde empfehlen, den exakt eingegebenen Text in der Datenbank zu speichern, so dass die Bearbeitung mit dem ursprünglichen Markdown oder HTML funktioniert.

Wenn Sie den Text für die Anzeige abzurufen, können Sie es auf der Server-Seite analysieren und in HTML konvertieren, wo notwendig

[Bearbeiten] Auf Kommentar: Sie scheinen eine Art von Analyse zu haben und bereits in HTML-Konvertierung wenn ich deine Frage richtig verstehe. Hier sprichst du über das produzierte HTML.

Wenn ich die erzeugte HTML-Format speichern, dann kann ich abrufen und korrekt angezeigt, aber auf Re-Editierung Ich bin mit dem Bearbeiten von HTML konfrontiert, Abschlag nicht

+0

Das ist toll, aber wie ich sagte "Ich kann keine Möglichkeit sehen, dies zurück in HTML zu konvertieren", so dass ein Link zu irgendeiner Art von JavaScript-Unterstützung oder .NET-Kontrolle nicht schief gehen würde. Ich habe sogar vergebens gegoogelt! – tags2k

+0

Der WMD-Editor bietet eine Vorschau-Funktion, die die einzige Möglichkeit ist, HTML zu sehen. Offensichtlich kann ich ein WMD-Steuerelement nicht jedes Mal instanziieren, wenn ich den Inhalt dem Benutzer zeige. – tags2k