![]() |
| | Themen-Optionen |
| | Nach oben #1 |
| Erfahrener Benutzer Registriert seit: 30.10.2005
Beiträge: 279
|
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. |
| | |
| | Nach oben #3 |
| Erfahrener Benutzer Registriert seit: 30.10.2005
Beiträge: 279
|
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. |
| | |
| | Nach oben #5 |
| Erfahrener Benutzer Registriert seit: 30.10.2005
Beiträge: 279
|
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)
|
| | |
| | Nach oben #6 |
| Benjamin Klaile Registriert seit: 02.12.2004 Ort: Remagen
Beiträge: 4.480
| 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?
|
| | |
| | Nach oben #7 |
| Erfahrener Benutzer Registriert seit: 30.10.2005
Beiträge: 279
|
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) |
| | |
| | Nach oben #8 |
| Benjamin Klaile Registriert seit: 02.12.2004 Ort: Remagen
Beiträge: 4.480
|
Hi, das hier 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 Hm, übersehe ich irgendwas oder reicht das nicht schon? |
| | |
| | Nach oben #9 |
| Erfahrener Benutzer Registriert seit: 30.10.2005
Beiträge: 279
|
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";
}
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. |
| | |
| | Nach oben #12 |
| Benjamin Klaile Registriert seit: 02.12.2004 Ort: Remagen
Beiträge: 4.480
|
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). |
| | |
![]() |
| Lesezeichen |
| Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1) | |
| Themen-Optionen | |
| |