Frage

Warum brauche ich eine Markdown mit einem Front -Edit -Editor wie Wmd? Was macht der Markdown mit dem Inhalt, der vom WMD -Editor gesendet wird?
Wie speichert Markdown den Inhalt im Backend? Ist es genauso wie *bold* Oder in einem anderen Format? Warum kann ich nicht einfach eine machen? HTML -Encode?

Entschuldigung, wenn ich sehr naiv klang.

War es hilfreich?

Lösung

Es ist wahrscheinlich hilfreich, einen Schritt zurück zu machen und einige der größeren Fragen zu stellen. Das Problem, das Markdown zu lösen versucht, ist das der reichen Bearbeitung im Browser. Bedenken Sie Folgendes: Irgendwann muss für jedes Software, um einen reichhaltigen Text zu ermöglichen, den Reichtum in irgendeiner Weise zu beschreiben, dies kann jedoch sein.

Wir könnten diese Beschreibung des Reichtums bezeichnen (unter Beschreibung des Reichtums, ich meine wie "Dieser Teil des Textes ist mutig" oder "Dieser Text ist ein Hyperlink), wir könnten diese Beschreibung des Reichtums" Markup "nennen - sie markiert die Text mit Meta "Reichtum".

Implementierungen von reichem Text können zwei Ansätze erfolgen, entweder a.) Ausblenden Sie das Markup vor dem Benutzer oder b.) Lassen Sie sie Zugriff auf das Markup haben.

Für diejenigen, die es verbergen, ist das Endergebnis sehr oft wysiwyg. Der Benutzer ist sich nicht bewusst, was hinter den Kulissen passiert. Der Herausgeber kümmert sich um die Details. Denken Sie als Beispiel an MS Word. Niemand manipuliert das Wort Markup -Format als regulärer Endbenutzer.

Für Implementierungen, die das Markup aufdecken, dient dann eine Markup -Sprache, damit Benutzer mit dem Interakat damit verbunden werden können. Solche Markup -Sprachen wären Dinge wie HTML tun <tag> oder BB -Code zum Beispiel, Dinge wie [tag].

Markdown ist eine solche dieser Sprachen.

Im Gegensatz zu den früheren Typen, die ich erwähnt habe, hat Markdown versucht, sich selbst so zu entwerfen, dass die Markup gemeinsame ASCII -Personen bereits verwendet. Zum Beispiel ist es üblich, dass Menschen ihren Text sternhalten, um ihn auszuschalten. *important*, Und diese Notation im Markdown ist ein Indikator für eine izalische.

In Bezug auf die Speicherung wird das System, wie Stephan betonte, höchstwahrscheinlich den RAW -Markdown speichern, da der Benutzer höchstwahrscheinlich die Möglichkeit der Bearbeitung haben muss, und der ursprüngliche Abschlag kann zu diesem Zweck zurückgerufen werden.

In den meisten Systemen, die ich gebaut habe, speichere ich den Markdown und normalisiere ihn dann auf ein 2. Feld, das das HTML -Rendering des Markdowns zwischengeschnitten hat. Auf diese Weise muss ich für jedes Markdown-Feld nicht Markdown-> HTML-Rendering durchführen. Es dauert etwas mehr Platz, aber ich würde lieber eine schnellere Antwort haben, als weniger DB -Speicherplatz zu verwenden.

Es sollte auch vorsichtig gemacht werden, wenn der Markdown aus dem Browser angenommen wird, wie es leicht enthalten kann <script> Tags, die herausgefiltert werden müssen. Die meisten Markdown -Implementierungen erkennen auch, dass HTML mit Markdown -Formatierung vermischt ist. Um sicher zu sein, müssen Sie sicherstellen, dass Ihre Eingänge und Caches ordnungsgemäß saniert werden.

Andere Tipps

diagram

      

Der Grund für die Verwendung eines anderen alternativen Codierungssystems als HTML ist die Sicherheit

Markdown und andere solche Codierungssysteme im Wiki -Stil unterstützen normalerweise keine Skriptsprachen

HTML unterstützt in vielerlei Hinsicht Skriptsprachen (

Die beiden Hauptsicherheitsprobleme sind:

  1. Malware -Kriminelle verwenden Skripte in benutzergenerierten Inhalten, um Malware -Aktionen auf dem Computer -Leser -Computer zu versuchen, indem sie auf bekannte Sicherheitslöcher zugreifen

  2. Kostenlose Lader, die Skripte verwenden, um den Rest der Website zu untergraben, indem Sie den Inhaltsrahmen oder die Stile, dh Anzeigen, Menü, Logos usw. ändern

Durch die Verwendung einer mittleren Sprache wie dem Markdown haben Sie die totale Kontrolle über die gerenderte Ausgabe

Die Filterung von HTML ist möglich, aber auch komplex und riskant

Der andere wichtige Grund für ein alternatives Codierungssystem ist die Durchsetzung des Stils. Normale HTML hat zu viele Optionen. Durch die Begrenzung der verfügbaren Optionen können Benutzer nur bestimmte Stile verwenden. Das sorgt normalerweise für sauberere und lesbarere Inhalte (vergleichen Sie dies mit eBay).

Der Hauptgrund für die Verwendung von Markdown ist die Lesbarkeit eines markierten Textes. Zum Beispiel können Sie es in einer einfachen Text-E-Mail senden und der Leser versteht immer noch die Schwerpunkt, die Kugeln, der Text wird in Absätze und Cetera geteilt.

Wenn Sie nach dem Speichern von Daten fragen, kommt es darauf an. Wenn Sie Markdown in der WordPress -Blog -Engine aktivieren, werden Daten so gespeichert, wie der Benutzer es eingegeben hat - in Markdown. Im Stack -Überlauf scheint es jedoch, als würden die Daten als HTML gespeichert. Zumindest enthalten die "Stack Overflow Data Dumps" HTML, nicht Markdown (ich habe gesehen Menschen beschweren sich) dass sie es zurück konvertieren müssen).

Wenn Sie den WMD -Editor verwenden, können Sie dem Benutzer zeigen, wie die Ausgänge nach der Konvertierung in HTML aussehen. Obwohl Markdown -Syntax ist Wirklich einfach, es ist nicht schwer, Fehler zu machen. Daher ist es am besten, den Benutzern die Ausgabe zu zeigen.

Ein weiterer Grund für die Verwendung von Markdown anstelle eines WYSIWIG -Steuerelements - ein WYSIWIG -Steuerelement ermöglicht es dem Benutzer, HTML in Daten zu verwenden, die Sie auf Ihrer Webseite anzeigen. Sie müssen also derjenige sein, der entscheidet, wann es einfach falsche HTML gibt und wann es ein Übel ist XSS/CSRF/Was auch immer Injektion. In Markdown konvertieren Sie einfach etwas * in <b>something</b>, Entfernen Sie alle unbekannten HTML -Elemente und Sie sind fertig.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top