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")
ss:) zu:) ls:& fo:) de:] va:) ch:° n4:( rl:( br:^ js:| ie:% fl:{ mo:|
E-Mail WauWau: [mailto:der-wauwau@gmx.de]