Ich habe die Anforderung, dass Benutzer ihre eigenen Artikel erstellen, ändern und löschen. Ich habe vor, den WMD-Editor zu verwenden, mit dem SO die Artikel erstellt.
Von dem, was ich sammeln kann, speichert SO den Abschlag und das HTML. Warum tut es das - was ist der Vorteil?
Ich kann nicht entscheiden, ob ich den Abschlag, HTML oder beides speichern soll. Wenn ich beides speichere, werde ich es abrufen und konvertieren, um es dem Benutzer anzuzeigen.
UPDATE:
Ok, ich denke, aus den bisherigen Antworten sollte ich sowohl den Abschlag als auch HTML speichern. Das scheint cool. Ich habe auch einen Blogpost von Jeff über XSS-Exploits gelesen. Da der WMD-Editor die Eingabe von HTML-Dateien ermöglicht, kann mir dies Kopfschmerzen bereiten.
Der fragliche Blogeintrag ist hier . Ich vermute, dass ich den gleichen Weg wie SO gehen muss - und die Eingabe auf der Serverseite sanieren muss.
Ist der Desinfektionscode, den SO verwendet, als Open Source verfügbar oder muss ich das von Grund auf neu starten?
Jede Hilfe wäre sehr willkommen.
Danke
Das Speichern von beiden ist äußerst nützlich / hilfreich in Bezug auf Leistung und Kompatibilität (und eventuell auch soziale Kontrolle).
Wenn Sie nur Markdown (oder ein anderes HTML-Markup) speichern, entstehen Performancekosten, wenn Sie es jedes Mal in HTML-Flavours analysieren. Dies ist nicht immer spürbar billig.
Wenn Sie nur HTML speichern, riskieren Sie, dass sich im generierten HTML automatisch Fehler einschleichen. Dies würde zu vielen Wartungs- und Bugfixing-Kopfschmerzen führen. Sie verlieren auch die soziale Kontrolle, weil Sie nicht mehr wissen, was der Benutzer wirklich ausgefüllt hat. Sie würden zum Beispiel als Administrator auch gerne wissen, welche Benutzer versuchen XSS zu verwenden <script>
und so weiter. Außerdem kann der Endbenutzer die Daten nicht im Markdown-Format bearbeiten. Sie müssten es zurück von HTML konvertieren.
Um den HTML-Code bei jeder Änderung der Markdown-Version zu aktualisieren, fügen Sie einfach ein zusätzliches Feld hinzu, das die Markdown-Version darstellt, die zum Generieren der HTML-Ausgabe verwendet wird. Wenn dies beim Abrufen der Zeile auf der Serverseite geändert wurde, müssen Sie die Daten mit der neuen Version erneut analysieren und die Zeile im DB aktualisieren. Dies ist nur ein einmaliger Aufpreis.
Wenn Sie nur einen speichern, müssen Sie den anderen entweder für die Anzeige oder die Bearbeitungsansicht neu erstellen.