Markdown in BBCode Konverter

Code-Stücke können hier veröffentlicht werden.
Antworten
sma
User
Beiträge: 3018
Registriert: Montag 19. November 2007, 19:57
Wohnort: Kiel

Ich schreibe gerne alle meine Texte im Markdown-Format. Dummerweise unterstützt dieses Forum kein Markdown, sondern nur das archaischen BBCode-Format. Ich habe mich daher endlich mal hingesetzt, und einen Konverter für ein Subset von Markdown in BBCode mit ein paar regulären Ausdrücken zusammengehackt und mir daraus ein Textmate-Plugin gebastelt, damit ich das nicht immer per Hand konvertieren muss.

Kann man irgendwie im Text vorkommende für BBCode escapen? Habe ich eine Chance, Schrift als <code> darzustellen? Zur Zeit ignoriert der Code alle `` ` ``?

Ich hatte hier auch den Code eingepastet, doch das tötet PHPBB3 und führt zu üblen PHP-Fehlermeldungen und zerstörten Umlauten. Daher siehe https://gist.github.com/1513929 für den Code.

Stefan
Benutzeravatar
noisefloor
User
Beiträge: 3856
Registriert: Mittwoch 17. Oktober 2007, 21:40
Wohnort: WW
Kontaktdaten:

Hallo,

wenn du Haskell-Skills hast könntest du auch zu Pandoc beitragen. Das kennt noch kein BBCode als Ausgabeformat. :-)

Gruß, noisefloor
sma
User
Beiträge: 3018
Registriert: Montag 19. November 2007, 19:57
Wohnort: Kiel

Och, hm, nö. Haskell-Erfahrung habe ich keine. Wer mag, kann ja etwas ähnliches in Python bauen und sich dabei meiner regulären Ausdrücke bedienen. Kompliziert ist IMHO nur das Parsen von Markdown. Versucht man es nicht wie ich mit reinen Textersetzungen, sondern erzeugt aus einem Markdown-Dokument zunächst eine interne Präsentation, kann man diese dann auch in verschiedenen Formaten wieder schreiben. HTML und BBCode wären so zwei triviale Ausgabeformate. Für etwas wie PDF müsste man schon mehr tun, da das Format komplexer ist. An einem Markdown nach EPUB-Konverter wäre ich übrigens interessiert.

Stefan
Benutzeravatar
Hyperion
Moderator
Beiträge: 7478
Registriert: Freitag 4. August 2006, 14:56
Wohnort: Hamburg
Kontaktdaten:

sma hat geschrieben: Kann man irgendwie im Text vorkommende für BBCode escapen?

Ein gängiges Mittel von vielen hier ist es, ein Leerzeichen einzufügen: [ b]fett[ /b] Bei Thema "Code in Tags, am besten Python-Code-Tags" kommt das öfter mal vor, um Einsteigern die Syntax zu zeigen.

Ansonsten könnte man versuchen, das ganze in einen Code-Block zu schreiben, aber das ist vermutlich eher nicht in Deinem Sinne...

Hab auf die schnelle noch diesen Thread gefunden: Link. Mit diesen Non-printable Chars könnte das gut klappen (ist ja ähnlich zu meinem Vorschlag oben).
encoding_kapiert = all(verstehen(lesen(info)) for info in (Leonidas Folien, Blog, Folien & Text inkl. Python3, utf-8 everywhere))
assert encoding_kapiert
Antworten