Frage

Meiner Meinung nach ist es eines der größeren Ziele des Markdowns, den Benutzer daran zu hindern, potenziell fehlgeschlagene HTML direkt zu tippen.

Nun, das funktioniert bei Markdownsharp nicht gerade für mich.

Dieses Beispiel funktioniert ordnungsgemäß, wenn Sie die zusätzliche Zeilenpause unmittelbar nach "ABC" haben ...enter image description here

Aber wenn diese Linienpause nicht da ist, sollte sie immer noch htmlencodiert sein, aber das passiert hier nicht ...enter image description here

Hinter den Kulissen stammt das gerenderte Markup aus einem Iframe. Und das ist der Code dahinter ...

<% 
var md = new MarkdownSharp.Markdown();
%>
<%= md.Transform(Request.Form[0]) %>

Sicher muss mir etwas fehlen. Oh, und ich verwende v1.13 (die neueste Version zum Zeitpunkt dieses Schreibens).


Bearbeiten (Dies ist ein Test für die Implementierung von Stackoverflow)

ABC

Das sollte nicht rot sein
War es hilfreich?

Lösung 2

Da klar wurde, dass die Implementierung von Stackoverflow einige Anpassungen enthält, die zeitaufwändig sein könnten, um zu testen und herauszufinden, habe ich mich entschlossen, eine andere Richtung zu gehen.

Ich habe meine eigene vereinfachte Markup -Sprache erstellt, die eine Untergruppe von Markdown ist. Das Open-Source-Projekt ist bei http://ultralight.codeplex.com/ und Sie können ein funktionierendes Beispiel bei sehen http://www.bucketsoft.com/ultralight/

Das Projekt ist eine vollständige ASP.NET -MVC -Lösung mit einem JavaScript -Editor. Und im Gegensatz zu Markdownsharp ist sicheres HTML garantiert. Der JavaScript-Parser wird sowohl clientseitig als auch serverseitig verwendet, um ein konsistentes Markup zu gewährleisten (besonders dank der Jurassic JavaScript Compiler). Es ist eine schöne Sache, nur eine Codebasis für diesen Parser beizubehalten.

Obwohl sich das Projekt noch in der Beta befindet, verwende ich es bereits auf meiner eigenen Website und es scheint bisher gut zu funktionieren.

Andere Tipps

Für diejenigen, die die individuelle Lösung von Steve Wortham nicht verwenden möchten, habe ich ein Problem und eine vorgeschlagene Lösung für die Markdownsharp -Jungs eingereicht: http://code.google.com/p/markdownsharp/issues/detail?id=43

Wenn Sie meine angehängte Markdown.cs -Datei herunterladen, finden Sie eine neue Option, die Sie festlegen können. Es verhindern, dass Markdownsharp Text in den Codeblöcken neu erstellt.

Vergessen Sie einfach nicht, HTML Ihre Eingabe zu codieren, bevor Sie sie in Markdown übergeben, nicht danach.

Eine andere Lösung besteht darin, HTML-Tags wie Stack Overflow zu weißen List. Sie würden dies tun, nachdem Sie Ihre Inhalte an Markdown übergeben haben.

Weitere Informationen finden Sie unter: Weitere Informationen: http://www.codetunnel.com/blog/post/24/mardownsharp-and-coded-html

Vielleicht verstehe ich nicht? Wenn Sie in all seinen Sorten einen neuen Codeblock in Markdown starten, benötigen Sie eine doppelt LineBreak- und Vier-Raum-Eindrückung-eine einzige Neuelinie wird in keinem der Renderer, die ich von ihnen musste, nicht erledigt.

abc -- Here comes a code block:

    <div style="background-color: red"> This is code</div>

Nachgeben:

ABC - Hier kommt ein Codeblock:

<div style="background-color: red"> This is code</div>

Nach dem, was Sie sagen, scheint es, dass Markdownsharp mit dieser Regel einwandfrei macht, also mit nur einer neuen Linie (aber Eindrückung):

 abc -- Here comes a code block:
     <div style="background-color: red"> This should be code</div>

Wir bekommen ein Chaos, kein Codeblock:

ABC - Hier kommt ein Codeblock: Dies sollte Code sein

Ich gehe davon aus, dass Stackoverflow das entzieht <div> Tags, weil sie denken, dass Kommentare keine Spaltungen und ähnlichen Dinge haben sollten. (?) (Im Allgemeinen müssen sie eine Menge anderer Verarbeitung durchführen, nicht wahr, z. B. Syntax -Hervorhebung und so weiter?)

BEARBEITEN: Ich denke, die Leute erwarten die falsche Sache einer Markdown -Implementierung. Zum Beispiel, wie ich unten sage, Es gibt kein "ungültiges Markdown". Es ist keine Programmiersprache oder etwas wie eine. Ich habe überprüft, ob alle drei Markdown -Implementierungen, die ich aus der Befehlszeile verfügbar habe Browser haben es nichts aus, überhaupt zu zeigen - Hühnerkratzer. Wenn Sie etwas ausschließen möchten, z. B. in einem Wiki-Programm, tun Sie natürlich etwas weiter, wie es die meisten Wiki-Programme für die Beschäftigung von Wiki tun.

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