Frage

Ich erstelle eine Website, die sehr grundlegende Markup-Funktionen erfordert.Ich kann keine Plugins von Drittanbietern verwenden, daher brauche ich nur eine einfache Möglichkeit, Markup in HTML zu konvertieren.Ich könnte insgesamt 3 Tags haben, die ich zulasse.

Was ist der beste Weg, um zu konvertieren? ==Heading== Zu <h2>Heading</h2>, oder --bold-- Zu <b>bold</b>?Kann das einfach mit Regex gemacht werden, oder hat jemand eine einfache Funktion?

Ich schreibe dies in C#, aber Beispiele aus anderen Sprachen würden wahrscheinlich funktionieren.

Nachverfolgen:Dies ist ein so kleiner Teil meiner Website, dass mir die Einfachheit der Verwendung eines einfachen Regex-Ersatzes gefallen hat.Ich habe dies in C# mit dem folgenden Code zum Laufen gebracht:

string html = Regex.Replace("==This will be inside h2==", "==([^=]*)==", "< h2>$1< /h2>")

.NET verwendet $1 Notation anstelle der \1 Notation, die in anderen Sprachen verwendet wird.

War es hilfreich?

Lösung

Dabei handelt es sich nicht wirklich um ein einfaches Problem, denn wenn Sie dem Benutzer Dinge wieder anzeigen möchten, müssen Sie auch die Eingaben bereinigen, um sicherzustellen, dass Sie keine erstellen Cross-Site-Scripting Schwachstellen.

Das heißt, Sie könnten wahrscheinlich etwas ganz Einfaches tun, wie Sie es am einfachsten beschreiben, indem Sie einen regulären Ausdruck ersetzen.

Zum Beispiel

replace the pattern ==([^=]*)== with <h2>\1</h2>

Andere Tipps

Da ist auch ein Perl-Modul und ein PHP-Projekt um dies zu tun.Der Quellcode zu beiden könnte bei der Entwicklung Ihrer eigenen Lösung hilfreich sein.

Ich verwende Markdown (die gleiche leichte Auszeichnungssprache, die auf dieser Website verwendet wird).Für C# steht ein sehr guter Quellcode zur Verfügung Hier.Es unterstützt Markdown vollständig, scheint jedoch nicht gepflegt zu werden.Aber im Moment funktioniert es wirklich gut und ist kostenlos Open Source.

Das Beste daran ist, dass die ganze Arbeit für Sie erledigt wird, wenn Sie diese Quelle in Ihr Projekt einbeziehen.Es ist sehr klein;im Grunde ein einzelner Methodenaufruf, um einen Textblock in HTML umzuwandeln.

Das hängt wirklich von der Wiki-Syntax ab, die Sie verwenden, da es mehrere verschiedene gibt.Offensichtlich verfügt die Wiki-Software irgendwo über diese Funktionalität;Wenn Sie kein Softwarepaket finden, das dies für Sie erledigt, können Sie in Ihrer Wiki-Software nach dem entsprechenden Code suchen.

Vielleicht Das ist das, was Sie brauchen.

Diese Seite ist eine Zusammenstellung von Links, Beschreibungen und Statusberichten der verschiedenen alternativen MediaWiki-Parser – also Programme und Projekte, die nicht MediaWiki selbst sind und die in der Lage oder beabsichtigt sind, die Text-Markup-Syntax von MediaWiki in etwas anderes zu übersetzen.

Wahrscheinlich übertrieben für Ihre 3 Tags, aber wenn daraus eine vollwertige Markup-Sprache wird und die regulären Ausdrücke anfangen, unheimlich auszusehen, dann sollten Sie das vielleicht in Betracht ziehen antlr

Wie Joseph sagte, ist Markdown die beste Lösung, um das Text-zu-HTML-Problem zu lösen.

MarkdownSharp ist leichtgewichtig, benutzerfreundlich und gut getestet, da es sich um die Stackoverflow-Implementierung handelt!

new Markdown().Transform("**markdown text**");

http://blog.stackoverflow.com/2009/12/introducing-markdownsharp/

Mehr zur Markdown-Syntax – http://en.wikipedia.org/wiki/Markdown

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