Kleine Wiki als Hilfesystem... Syntax, PHP/Perl, usw...
WauWau
- programmiertechnik
0 Tim Tepaße0 WauWau
Hallo,
also, ich habe mir bereits mal ein kleines Hilfesystem in PHP zurechtgebaut, welches im Übrigen eine Wiki ist, also Leute können da mitschreiben, wie sie wollen - wie bei http://www.wikipedia.org.
Der verwendete Formatierungssyntax ist so eine Art BBCode, realisiert mit der "BB code parsing class" von Christian Seiler[1]. Der resultierende Syntax erscheint mir jedoch recht kompliziert[2]. Deswegen dachte ich an etwas anderes, was ich mir selbst zusammeprogrammieren wollte. Es gleicht gewissermaßen mehr dem Syntax, den die Wikipedia[3] verwendet.
Ein paar Beispielen von dingen, die sehr einfach mittels ein paar preg_replace()'s realisierbar sind:
Überschriften: z.B. ###Überschrift1### +++Überschrift2+++
Link auf interne Hilfeseite
(deren Titel erscheint): [ID]
Link auf interne Hilfeseite: [ID|Linktext]
Link: http://...
Link mit eigenem Linktext: http://...|Linktext
Bild: [bild:http://...]
Bild mit Bildbeschreibung: [bild:http://...|Beschreibung]
Anker: #Anker#
Standartformatierungen: _unterstrichen_ *fett* %kursiv%
Code darin nicht interpret.: <keincode> ... </keincode>
Linie: ----
Taste (<kbd>): <Taste>
Inlinecode (<code>): 'Inlinecode'
Spezieler Name: ''Spezieller Name''
Akronym (<acronym title=...) /Abk./Ausgeschriebene Abkürzung/
..... usw. usw.
Genau. Schwieriger wird es beispielsweise bei Listen:
* Listenpunkt 1
* Listenpunkt 2
Bei Wikipedia braucht man bei einer ganz einfachen Liste keine "Listenstart" und "Listenend"-Bemerkung/sonstwas hinschreiben. Wie bekomme ich es also hin, dass das obige Beispiel so
<ul>
<li>Listenpunkt 1</li>
<li>Listenpunkt 2</li>
</ul>
übersetzt wird? Ich meine, eine einzelne Zeile mit "(?: *)\*(?: *)(.*)" zu finden, wäre kein Problem. Aber wie finde ich eine gesamte Liste?
Btw: Oder gar es ermöglichen, mit ** untergeordnete Listen, ***, usw. zu schreiben?
Oder zum Beispiel eine Tabelle....:
[[[
|| Reihe 1 | Zelle 2 | Zelle 3
|| Reihe 2 | Zelle 2 | Zelle 3
]]]
Hat irgendjemand eine Idee?
Wäre es vielleicht sinnvoll, wenn ich mir mal die Wikipedia[3]-Software runterladen sollte (wenn das Syntax-Zeugs in Perl geschrieben wäre, wäre es perfekt)...!?
Apropos Perl: Sind solche "Regulären-Ausdrücke-Dinger" (also replacen... usw.usw.) eigentlich in PHP langsamer als in Perl?
WauWau
[1] An dieser Stelle: Danke Christian ;-)
Übrigens hat deine Klasse ein paar Bugs, die mir irgendwie nicht
so gefallen ;-) Habe schon mal ein bisschen was in dem Ding ab-
geändert, trotzdem erscheinen noch Fehlermeldung, wenn man einen
syntaktisch falschen BBCode aufsetzt.
[2] Formatierungsmöglichkeiten: Fett, Kursiv, Unterstrichen, spezielle
Bezeichnungen, Abkürzungen/Akronyme, Überschriften (1-6), Listen
(aller Art), Tabellen, Präformierten Text (Block sowie inline),
Links, internes-system-Links ("Links zu anderen Hilfeseiten")
Hallo WauWau (Hündchen, Grillhähnchen, etc.),
Wäre es vielleicht sinnvoll, wenn ich mir mal die Wikipedia[3]-Software
runterladen sollte (wenn das Syntax-Zeugs in Perl geschrieben wäre, wäre es
perfekt)...!?
Es gibt diverse Variante, reinen Text mit einer bestimmten Syntax in HTML
Quellcode zu übersetzen, nicht nur in einem Wiki drin. Mir bekannt sind
ReST (für: Restructured Text), Textile, ein Klassiker und relativ neu
Markdown. Ich würde an Deiner Stelle mal nach denen googlen, wenn sie
Dir behagen, diese einbinden, wenn nicht zumindest mal dort in den
Quellcode gucken, wie die das machen.
Tim
Hallo Tim,
Hallo WauWau (Hündchen, Grillhähnchen, etc.),
*lol*.... "Grillhähnchen" ;-)
Es gibt diverse Variante, reinen Text mit einer bestimmten Syntax in HTML
Quellcode zu übersetzen, nicht nur in einem Wiki drin. Mir bekannt sind
ReST (für: Restructured Text), Textile, ein Klassiker und relativ neu
Markdown. Ich würde an Deiner Stelle mal nach denen googlen, wenn sie
Dir behagen, diese einbinden, wenn nicht zumindest mal dort in den
Quellcode gucken, wie die das machen.
Ich habe auch überhaupt nicht vor, das Wikiprogramm der Wikipedia zu (be)nutzen, sondern wollte mir lediglich ein paar Auszüge aneignen, die sich mit der Umsetzung des Syntaxes kümmern.
Dass es diverse Varianten gibt, ist mir klar. Nur ähneln meine Syntax-Vorstellung (sehr) dem Syntax der Wikipedia, das ist der Grund, weswegen ich so darauf zu sprechen komme.
Diese "ReST" und "Markdown"-Dinger sind anscheinend auch (verbreitete) Syntaxformen? Also so mit "BBCode" vergleichbar? Genau, ich werde mal googlen - oder einfach in der Wikipedia nachschlagen *bg*
Quellcode-schauen lohnt sich allenfalls, das werde ich dann mal machen...
WauWau