Portal > Foren > PHP > PHP-Programmierung > WikiCode Konvertierer
Antwort
 
Themen-Optionen
Alt 06.08.2007, 19:41 Nach oben    #1
Erfahrener Benutzer
 
Registriert seit: 30.10.2005
Beiträge: 279
Standard WikiCode Konvertierer

Wie ich im Gesuche gepostet habe suche ich eine Klasse, die HTML zu Wiki konvertiert. Wahrscheinlich ist gibt es diese noch nicht und wenn doch auch egal, dann muss ich halt selber ran. Allerdings wollte ich mal wie ihr objektorientiert an die Sache dran gehen würdet. Welche Funktionen benötigt die Klasse? Wie würdet ihr Vorgehen? Vom Coding dürfte das nicht so arg schwer sein, allerdings wäre es gut gleich einen geschickten Ansatz zu haben.
ex³ ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 06.08.2007, 21:00 Nach oben    #2
Jann Hendrik Bekaan
 
Benutzerbild von Jann Hendrik
 
Registriert seit: 02.12.2004
Ort: Wildeshausen
Beiträge: 2.213
Standard

Ist dies nun ein Gesuch, oder willst du das selbst machen?
Jann Hendrik ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 06.08.2007, 21:29 Nach oben    #3
Erfahrener Benutzer
 
Registriert seit: 30.10.2005
Beiträge: 279
Standard

Beides.
Wobei wohl keine Klasse gibt die HTML zu Wiki umwandelt.
Außerdem bin ich eher fürs selberbauen. Da weiß ich was drin ist.

Ich dachte mir ich beschränke meine Konvertierungsklasse mal auf Headings, Listen und Absätze. Tabellen erscheinen mir ein bisschen zu komplex um sie zu konvertieren.

Vor dem Parsen würde ich werde ich wohl alle mögliche Tag-Attribute rauslöschen (soweit ich steht da was im aktuellen PHP-Mag. drin)

Für die einzelnen HTML Tags würde ich Rules definieren die ich mit addRule() an den Parser übergebe. Eine Rule (ist ein Array) hat möglicherweise verschiedene Einstellungen. Ich schätze mal einen Regex. Während des parsens würde ich alle Ergebnisse in einem Array Speichern. Welches ich am Ende mit render() zusammenbaue. Ein ganz klein wenig wie PEAR Text_Wiki.

Soviel also zu meinem Ansatz.
ex³ ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 08.08.2007, 19:44 Nach oben    #4
Ben
Benjamin Klaile
 
Benutzerbild von Ben
 
Registriert seit: 02.12.2004
Ort: Remagen
Beiträge: 4.480
Standard

Ich habe gar nicht so genau verstanden, was du eigentlich haben willst. :-/

Quasi das HTML-Tags in Wiki-Tags überführt werden, wobei die Wiki-Tags individuell gestaltet werden können?
Ben ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 08.08.2007, 22:16 Nach oben    #5
Erfahrener Benutzer
 
Registriert seit: 30.10.2005
Beiträge: 279
Standard

Ganz easy. HTML zu Wiki konvertieren. Mehr nicht. Da ich selber am bauen, arbeite ich derzeit alles mit preg_replace_callback durch. Probleme machen mir derzeit nur verschachtelte Listen (von Tabellen halte ich mich erstmal zurück)
ex³ ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 09.08.2007, 11:15 Nach oben    #6
Ben
Benjamin Klaile
 
Benutzerbild von Ben
 
Registriert seit: 02.12.2004
Ort: Remagen
Beiträge: 4.480
Standard

Zitat:
Zitat von ex³ Beitrag anzeigen
Ganz easy. HTML zu Wiki konvertieren.
Starke Aussage. Ich weiß aber nicht was "Wiki" für eine Auszeichnungssprache sein soll! Es gibt doch für jede Art von Wiki-Anwendungen spezifische Ausschreibungs-Tags. Das ist ja nicht grundllegend standardisiert, oder bin ich da falsch informiert?
Ben ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 09.08.2007, 13:29 Nach oben    #7
Erfahrener Benutzer
 
Registriert seit: 30.10.2005
Beiträge: 279
Standard

Ahso. Gehen wir davon aus das ich HTML (aus dem Internetseiten gemacht werden) in Wiki Markup umwandeln möchte. Hierbei soll es sich um das MediaWiki Markup handeln, wie es bei Wikipedia verwendet wird.

(Das mit dem HTML ware ein Witz)
ex³ ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 09.08.2007, 13:44 Nach oben    #8
Ben
Benjamin Klaile
 
Benutzerbild von Ben
 
Registriert seit: 02.12.2004
Ort: Remagen
Beiträge: 4.480
Standard

Hi,
das hier
Zitat:
Zitat von ex³ Beitrag anzeigen
Hierbei soll es sich um das MediaWiki Markup handeln
war was ich wissen wollte. Nun habe ich auch verstanden, um was es dir eigentlich geht.


Nun, ich würde als Ansatz vorschlagen, dass man erstmal festlegt, welche HTML-Tags denn überhaupt konvertiert werden sollen. Das hast du ja schon gemacht. Nehmen wir mal für den Anfang nur strong bzw. b, sowie em und i, also fette und kursive Schrift.

Wie du richtig geschrieben hast, müssen aus dem HTML-Quelltext ja alle HTML-Elemente bis auf diejenigen, die ersetzt/konvertiert werden sollen rausge"strippt" werden. Wäre also so etwas in der Art wie Converter::cleanSource($sourceString) oder sowas.

Danach geht es ans Ersetzen. Das sollte ja dann eigentlich recht einfach vonstatten gehen, oder?
Mittels Converter::setReplacements($array) (total bescheuerter Name -) werden die zu ersetzenden Tags definiert, mittels Converter::replace() wird dann die Konvertierung durchgeführt.

Hm, übersehe ich irgendwas oder reicht das nicht schon?
Ben ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 09.08.2007, 16:49 Nach oben    #9
Erfahrener Benutzer
 
Registriert seit: 30.10.2005
Beiträge: 279
Standard

Gehen wir mal davon aus das es sich um ein recht schlampiges HTML handelt. Tags mit zahlreichen JavaScript Attributen und unterschiedlichen Verschachtelungen bei Leerzeichen. Als ersts bin ich hingegangen und hab den Text mit PEAR HTML_SAFE gesäubert und danach mittels preg_replace alle Umbrüche entfernt (Damit ich das Markup später selbst sauber zusammensetzen).

Für jeden HTML Tag gibt es in meinem Konverter eine Callback Funktion. Allerdings um die ganzen Ungereimtheiten im Code zu berücksichtigen haben sich meine Callback Funktionen ziemlich aufgebläht. Darum habe ich mir gedacht ähnlich wie bei PEAR Text_Wiki die Callback Funktionen in Klassen aufzuteilen.

Der Fitzelkram wie fett oder kursiv ist ja ok. Allerdings weiß ich nicht wie ich aus verschachtelten HTML Listen passende Wiki Listen erzeuge. Derzeit sieht das ungefähr so aus:

Code:
private function transform_listitem($matches) {
    return '* '.$matches[0]. "\n";
}
Allerdings funktioniert dies dann nicht mehr richtig bei verschachtelten Listen. Ich denke das muss ich irgendwie rekursiv lösen, hab aber kein Plan. Tabellen sind wohl noch schwerer zu behandeln.

Um mich mich mit den ganzen \n nicht zu verhaspeln dachte ich mir das ich jedes gefundene Element p, em, li, h1, etc. in einem Array speichere, was dann bei render() zusammen gesetzt wird. Aber da die Callback Funktionen nacheinander ablaufen ist dies ja nicht möglich. Ich hätte ja dann beispielsweise alle Headlines nacheinander und dann erst alle paragraphs. Dann stimmt ja die Struktur nimmer.

Wie dem auch sei. Derzeit hänge ich am Problem mit verschachtelten Listen.
ex³ ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 10.08.2007, 17:08 Nach oben    #10
Ben
Benjamin Klaile
 
Benutzerbild von Ben
 
Registriert seit: 02.12.2004
Ort: Remagen
Beiträge: 4.480
Standard

Sollte doch eigentlich das gleiche Problem sein, wie bei verschachtelten Listen in bbCode, oder nicht?
Ben ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 10.08.2007, 18:12 Nach oben    #11
Erfahrener Benutzer
 
Registriert seit: 30.10.2005
Beiträge: 279
Standard

Ich habs trotzdem nicht gecheckt.
ex³ ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 10.08.2007, 18:37 Nach oben    #12
Ben
Benjamin Klaile
 
Benutzerbild von Ben
 
Registriert seit: 02.12.2004
Ort: Remagen
Beiträge: 4.480
Standard

Wollte damit auch nur sagen, dass du dir vielleicht dort auch was abschauen kannst


Nachtrag:
Bisschen rumgesucht .. vielleicht hilft es ja:
https://forum.webmasterpro.de/viewtopic-t-46929.html

Ansonsten:
http://www.phpfriend.de/forum/ftopic35104.html

Geändert von Ben (10.08.2007 um 18:40 Uhr).
Ben ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Antwort

Lesezeichen


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 
Themen-Optionen

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus


Alle Zeitangaben in WEZ +2. Es ist jetzt 18:47 Uhr.


Powered by vBulletin® Version 3.7.3 (Deutsch)
Copyright ©2000 - 2008, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44