Wiki-Markup-Sprache mit hervorragender Tabellenunterstützung

8

Ich entwickle ein Wiki mit Python / Django, teilweise für Bildungszwecke. Bis jetzt fehlt mir noch die richtige Auszeichnungssprache. Ich habe versucht, eine gute Aussicht zu haben, einschließlich Creole und Markdown, die bis auf die Tischunterstützung gut funktionierten. Gewöhnliche Wiki-Markup-Sprachen scheinen nur rudimentäre Tabellen zu unterstützen, d. H. Eine einzelne Zeile pro Zelle oder keine komplexen Markups innerhalb von Zellen. Aber die Benutzer meines Wikis wollen in der Lage sein, Tabellen mit größerem Text und Listen zu erstellen. Ich habe meine Probleme, eine Auszeichnungssprache zu finden, die das tatsächlich kann.

Ich habe mir die MediaWiki-Auszeichnungssprache angeschaut, die alles zu unterstützen scheint, aber ich denke, das wäre zuviel. Der Rest des Markups kann ziemlich einfach sein, mit Fokus auf die einfache Schreibbarkeit von Markup (ich finde MediaWiki-Markup manchmal etwas hässlich). Außerdem muss es ein Python-Modul zum Übersetzen von Markup in HTML geben, das ich in der Webapp nutzen kann. Ich bin immer noch auf der Suche nach einem MediaWiki-Markup.

Eine andere Alternative wäre, überhaupt Wiki-Markup-Sprachen auszugeben und statt dessen einen Satz definierter HTML-Tags für Markup zuzulassen. Aber das macht es schwieriger, Wiki-Artikel zu schreiben, da HTML nicht für solche Zwecke erfunden wurde. Auch das Finden und Entwischen von verbotenem HTML könnte ziemlich kompliziert sein. Ich hätte lieber eine nette Markup-Sprache mit einer leichten Python-Implementierung.

Kennt jemand eine Markup-Sprache mit erweiterter Tabellenunterstützung und eine Implementierung in Python, die ich verwenden könnte?

Vielen Dank im Voraus!

    
j0ker 09.03.2012, 02:29
quelle

2 Antworten

1

Ich habe selbst eine Lösung gefunden, da ich reST für technisch unerfahrene Benutzer zu kompliziert fand. Ich könnte ein wenig ausgearbeitet sein, aber es funktioniert für mich.

Der Schlüssel ist eine Erweiterung für eine bereits vorhandene Auszeichnungssprache. Ich fand Markdown ziemlich angenehm, trotz fehlender Tischunterstützung. Verwenden Sie Python-Markdown, hier alles, was Sie zum Schreiben Ihrer eigenen Erweiterung wissen müssen. Es ist nicht so kompliziert. Ich habe in einer halben Stunde etwas zusammengehackt und es funktioniert tatsächlich so weit. Ich würde den Code hier zeigen, aber ich bin nicht wirklich stolz darauf;) Grundsätzlich parsen Sie einen Markup-Block und fügen die Tabellenelemente im DOM ein, wie Sie möchten.

Ich denke, jede verwendbare Implementierung einer Markup-Sprache sollte irgendeine Art von Erweiterungsmechanismus haben, daher sollte es möglich sein, Erweiterungen auch für andere Sprachen und Implementierungen zu schreiben. Das ist nicht die bequemste Lösung, aber immer noch besser als eine hässliche Sprache, nur um der Funktion willen.

    
j0ker 11.03.2012, 01:32
quelle
4

Ich weiß nicht, ob es Ihren Anforderungen entspricht, aber Sie könnten reStructuredText verwenden. Sphinx generiert HTML daraus für die Python-Dokumentation und schreibt es in Python, daher sollte es für diesen Zweck einfach zu verwenden sein. Ich finde es sehr ordentlich und leicht zu lesen, so wie es entworfen wurde, und es kann ziemlich komplizierte Tische machen.

    
aquavitae 09.03.2012 12:16
quelle

Tags und Links