Der HTML-Hack für InDesign

Raffiniert und zeitsparend: Mit regulären Ausdrücken aus InDesign exportierte HTML-Dateien entrümpeln und optimieren.

Eines meiner ehrenvollsten Ämter überhaupt ist es, der Webmaster von dorfposcht.ch zu sein. Dort bringe ich das sechsmal jährlich erscheinende Mitteilungsorgan von Thalheim-Gütighausen ins Internet – und das nun schon seit 16 Jahren. Die Ausgaben werden in InDesign gelayoutet und sollen möglichst schnörkellos im Web landen, damit die Heimweh-Thalheimer auch etwas davon haben. Und weil das über die Jahre ein schönes Archiv zu den Dorfaktivitäten gibt.

TextCrawler – darf in keinem Webmaster-Haushalt fehlen.

Für mich als Webmaster stellt sich nun die Aufgabe, die Beiträge aus der InDesign-Satzdatei mit möglichst wenig Aufwand ins Web zu bringen. In einer professionellen Umgebung, namentlich wenn man ein Redaktionssystem zur Verfügung hat, würde man mit XML und entsprechenden Umformungen arbeiten. Das ist für uns aber mit Kanonen auf Spatzen geschossen. Mein Ziel ist ein möglichst robuster Weg, bei dem ich obendrein sehr schnell ans Ziel komme.

Formatvorlagen umsetzen

Die wichtigste Anforderung bei der Aufarbeitung für die Website ist, dass die in der InDesign-Satzdatei vorhandenen Formatvorlagen in die richtigen HTML-Tags umgesetzt werden. Ich habe dazu lange Jahre das selbstentwickelte Windows-Programm Tag Converter benutzt. Weil der HTML-Export von InDesign lange Jahre quasi unbrauchbar war, setzt das beim Exportformat InDesign Tagged Text an.

Der Weg via Tag Converter hat sich über lange Jahre bewährt. Als die Kollegen von der Dorfposcht nun auf InDesign CS6 umgestiegen sind, klappte er nicht mehr. Adobe hat das Tagged-Text-Format so angepasst, dass viele unerwünschte Überbleibsel im Text zurückblieben, die manuell zu entfernen waren und viel Zusatzaufwand gemacht haben. Es musste daher eine neue Lösung gefunden werden, zumal ich Tag Converter wegen dem Ärger um Delphi nicht mehr weiterentwickeln will.

Den HTML-Export regexen

Der HTML-Export von InDesign ist inzwischen auch ganz brauchbar. Allerdings enthält er nach wie vor viele Tags, die ich nicht in meinem HTML-Code drin haben will. Es besteht das Problem, dass die Layoutkollegen nicht immer stringent mit ihren Formatvorlagen umgehen. Und obendrein habe ich mich vor 16 Jahren entschieden, hauptsächlich mit den Standardelementen zu arbeiten und verwende seither zur Textstrukturierung vor allem die Überschriftenebenen h1 bis h4. Ich muss somit ein Format, das im exportierten HTML als <p class=”Titel-Rubrik-Std”>Ferienzeit – Reisezeit</p> heisst, in <h1>Ferienzeit – Reisezeit</h1> umpolen, und aus <p class=”Text-Zwischentitel”>Bauwesen</p> entsprechend <h4>Bauwesen</h4> machen.

Der Batch-Editor: Simpel, aber wirkungsvoll.

Das ist, natürlich, ein Fall für reguläre Ausdrücke. Ich bin in letzter Zeit sowieso ein erklärter Regex-Fan geworden, weil man damit sehr viel gehoben kriegt. Zuerst habe ich mich an Notepad++ mit dem Python-Script-Plug-In versucht. Der Weg via Script ist leistungsfähiger, da man nicht nur suchen und ersetzen kann, sondern auch programmatische Veränderungen vornehmen kann. Ich gehe auf diese Möglichkeiten im Blogpost Knoten aus dem HTML kämmen ein. Hier solls jetzt um ein einfaches Batch-Suchen-Ersetzen gehen.

TextCrawler erledigt den Job

Ich bin daher auf das Windows-Freeware-Programm TextCrawler ausgewichen. Es sucht und ersetzt, und zwar nach der Standardmethode, aber auch mittels regulärer Ausdrücke und einer Fuzzy Search. Das Programm rattert bei Bedarf mehrere Dateien durch und – und das ist der eigentliche Clou – es hat einen Batch-Editor, bei dem man eine Latte von Suchläufen hinterlegen kann, die man dann auf sein Dokument loslässt.

Das reicht dann schon für meine Aufgabe: Mit rund 30 regulären Ausdrücken kann ich das HTML-Dokument so umformen, dass es für meine Zwecke passt. Die Nachbearbeitung in Dreamweaver ist dann relativ schnell erledigt – so, wie das bei einem gut geölten Arbeitsablauf eben der Fall ist.

Reguläre Ausdrücke prüfen.

Fazit: TextCrawler ist eines dieser unscheinbaren Programme, das einem das Leben wirklich leichter machen kann. Es hat viele praktische Extra-Funktionen, wie etwa der Regular Expression Tester, mit dem man seine regulären Ausdrücke prüft und debuggt – mit Echtzeit-Vorschau bei jeder Änderung! Das einzige Feature, was ich mir wünschen würde, und das es nicht zu geben scheint, wäre die Möglichkeit, das Programm über die Kommandozeile zu steuern. Klar, andere Leute würden die Aufgabe über ein Perl-Script oder etwas in der Art lösen. Aber so nerdig bin ich dann doch (noch) nicht…

Kommentar verfassen