HTML-Editor zu "Massenbearbeitung"

  • Hi,


    ich hab hier schon ein paar Beiträge verfasst nicht weil ich in HTML Seiten erstelle sondern weil ich mir oft Bücher als PDF über eine OCR-Software in ePub wandeln lasse - und ePub ist ichts weiter als xHTML-Dateien in einem Archiv. Normalerweise nutze ich unter Linux Calibre Editor oder Sigil, was gegenüber HTML-Editoren den Vorteil hat, dass bestimmte nicht von eBook-Readern unterstützte HTML-Elemente, gar nicht genutzt werden können.


    Aktuell habe ich ein umfangreiches Buch mit vielen Tabellen, die leider vom OCR-Tool alle sehr individuell erstellt wurden - die Quelle war nur mittel und Hintergrundbildchen und -muster führten zu teils krummen Ergebnissen. Ich will jetzt erstmal alle "Nicht-Tabellen-Elemente" (außer: table, tr und td) aus den Tabellen löschen. Teils sind das <p ....>, <span ....> oder CSS in tr und td. Über Suchen&Ersetzen komme ich auch mit Regex nicht weit.


    Gibt es einen HTML-Editor der sowas kann? "Alles löschen innerhalb von <table> außer <tr> und <td>"?


    Regulator


    P.S. Ich nutze wie gesagt Linux (Ubuntu), die OCR-Software läuft nur unter Windows in einer VM. Auch Windows wäre also verfügbar.

  • Mit Linux habe ich keine Erfahrung.


    Unter Windows kenne ich keinen Editor oder ein anderes Programm, welches von sich aus die Inhalte von HTML-Tabellen löschen kann und dabei das HTML-Tabellengrundgerüst stehen lässt.


    Als Lösung sehe ich einen Editor mit einer erweiterten Makro-Funktion. Wo das Makro also nicht nur Tastenbetätigungen aufzeichnet, sondern über einige zusätzliche Funktionen verfügt. Ähnlich wie beim Programmieren, aber deutlich einfacher.


    Das kann zum Beispiel der UltraEdit, den es wohl auch für Linux gibt.


    Mit erweiterten Makro-Möglichkeiten könntest du auch umgekehrt verschiedene Tabellengerüste hinterlegen, die du dann passend auf Knopfdruck an der gewünschten Position einfügen kannst. Damit entfallen gleichzeitig Einlesefehler der HTML-Angaben.

  • Alternativ zu einem Editor mit Macro-Funktion würde es sich anbieten, die Überarbeitung auszuprogrammieren, z. B. mit PHP. Aber ich weiß nicht, ob Du da einsteigen möchtest, falls Du noch keine Erfahrungen hast.

    Poste doch mal ein Beispiel, damit man einschätzen kann, wie einfach oder kompliziert es werden wird.

  • Also mit PHP hab ich so ziemlich Null Erfahrung.


    Was heißt denn Makro? Ich kenne das nur von Programmen die Mauszeigerbewegungen Aufzeichnen können. Das wäre hier aber nicht hilfreich, weil ja jede Tabelle ein Stück weit individuell ist und das Makro ja auch nur immer die gleichen Aktionen ausübt.


  • Kennt sich jemand mit 'sed' aus? Ich bin aber überlegen ob es möglich ist alle zwischen <table border="1"> und dem nächsten </table> anzeigen zu lassen. Damit könnte man zumindest mal alle Tabellen herauslösen. es gibt auch Tabellen im Text die nicht bearbeitet werden sollen, die enthalten aber mehr Angaben in <table>.


    Mit


    Code
    1. sed -n '/\<table\>/,/\<\/table\>/p' input


    geht das halbwegs, hier aber für alle Tabellen. In <table border="1"> ist ja ein Leerzeichen und ich weiß nicht wie ich sed mitteilen soll, dass er hier das Leerzeichen beachten soll. So


    Code
    1. sed -n '/"\<table border=\"1\"\>"/,/\<\/table\>/p' input


    geht es nicht

  • Zitat

    Kennt sich jemand mit 'sed' aus?

    Ist bei mir lange her und auch da nur bedingt. Aber wenn Du unter Linux arbeitest und auf dieser Schiene einsteigen möchtest, würde sich eher AWK anbieten. Das ist sehr mächtig und man kann fast alles damit machen. Erfordert nur ein wenig Einarbeitung. Ich habe früher selber damit HTML-Seiten generiert und überarbeitet.

  • Hab bisher nur mit sed gearbeitet, die Bsp. aus awk hab ich bisher nie verstanden. Vielleicht mach ich das auch zu Fuß mal sehen.


    Mal etwas anderes, weil das bei solchen Änderungen auch von Vorteil sein kann: Gibt es die Möglichkeit arg unübersichtlichen Code (wie ihn Abbyy FineReader leider meist ausspuckt) in übersichtlich umzuwandeln? Also aus

    Code
    1. <table>tr><td>text1</td></tr><tr>>td>text2</td></tr></table>


    sowas zu machen


    Code
    1. <table>
    2.  tr>
    3.   <td>text1</td>
    4.  </tr>
    5.  <tr>
    6.   <td>text2</td>
    7.  </tr>
    8. </table>
  • Kannst du mir kurz sagen wo es diese Funktion gibt? Bin überrascht, dass es von einem M$-Programm eine LInux-Version gibt.


    Hab auch im Calibre Editor - ein Editor speziell für eBooks - eine "Aufhübsch-Funktion" gefunden, die macht aber sehr komische Sachen.