kriegaex / Galileo-Openbook-Cleaner

HTML cleaner for Galileo Computing's openbooks, implemented in Java
Other
73 stars 6 forks source link

Programm säubert zu viel aus HTML-Code #11

Closed Thorsten42 closed 11 years ago

Thorsten42 commented 11 years ago

Hallo Alexander,

erstmals vielen Dank für das tolle Programm. Leider hab ich beim säubern des IT-Handbuchs für Fachinformatiker festgestellt, dass der cleaner etwas zu viel wegnimmt und Programmiercode-Beispiele aus dem Buch mit entfernt.

Zum Beispiel: Bei Kap. 9.1.2, ich hab mal ein Vergleichsbeispiel-screenshot zwischen gesäubertem und unverändertem Code gemacht:

fehler_bsp

Der unveränderte HTML-Code schaut folgendermaßen aus:

Es kann sich sowohl um eingebaute als auch um selbstdefinierte Funktionen handeln. Beispiel: </li> </ul>printf ("hallo"); <ul class="gp">

Der gesäuberte Code so:

Es kann sich sowohl um eingebaute als auch um selbstdefinierte Funktionen handeln. Beispiel: </li> </ul> <ul class="gp">

Der Fehler tritt leider durchs ganze Buch hinweg auf.

kriegaex commented 11 years ago

Ich schaue demnächst mal rein, danke für den Hinweis. Habe gerade (wie meistens) beruflich viel zu tun, aber sowas gefällt mir auch nicht, das ist unsauber. Ich fixe das, sobald ich mal dazu komme!

kriegaex commented 11 years ago

Ich habe mal kurz reingeschaut, und es sieht so aus, als wäre es ein Problem von jsoup, das - auch in der aktuellen Version 1.7.2 - mit der seltsamen HTML-Struktur dieses Buches nicht zurecht kommt. Da hängen Text Nodes in der Luft, und das mag der Parser nicht. Ich denke mal darüber nach, ob das irgendwie zu verhindern ist. In den ersten fünf Minuten ist mir jedenfalls keine einfache Lösung eingefallen. Ich melde mich demnächst wieder.

Update: Nein, es liegt nicht an jsoup, sondern daran, daß der GOC sich beim Umstrukturieren einer HTML-Seite nur sog. Elemente (elements), aber keine anderen Knoten (nodes) wie z.B. Text merkt, der auf oberster Ebene im Body der Seite vorkommt.

kriegaex commented 11 years ago

Zwischenstand, nachdem ich mal wieder ein halbes Stündchen hineinschauen konnte: Ich denke, ich habe einen Weg gefunden, das Löschen der Textknoten zu verhindern. Ich möchte das aber noch sauber implementieren und testen, ob es dabei nicht versehentlich andere Bücher zerschießt.

Thorsten42 commented 11 years ago

Schon mal vielen Dank für die Mühe!

kriegaex commented 11 years ago

Bugfix enthalten in v1.0.3. Behebt auch ähnliche Problemchen in anderen Büchern.