DIVs, so weit das Auge reicht

Allen gutgemeinten Warnungen zum Trotz verwende ich reguläre Ausdrücke, um HTML-Code in meinen Archivdateien zu bereinigen und von Ballast zu befreien.

Neulich hatte ich eine nette Diskussion mit Herrn Mumprecht vom SMD. SMD ist die Schweizer Mediendatenbank, die Artikel von den grossen Schweizer Medien durchsuchbar bereithält. Es ging um HTML.

Ich gebe ja zu, ich diesbezüglich etwas exzentrisch gestrickt. Ein Chaos in der Wohnung lässt mich kalt. So lange man sich einen Weg zum Kühlschrank bahnen kann, ist alles okay. Aber aufgeblähter HTML-Code geht mir gegen den Strich.

So kann man HTML natürlich auch machen.

Nun ist es so, dass ich seit Jahren ein Archiv meiner Artikel unterhalte. Einerseits als Datenbank, andererseits als Text und PDF. Das tue ich aus diversen Gründen: zur Pflege meines Portfolios, für die ProLitteris und vermutlich auch aus einem womöglich fehlgeleiteten Berufsstolz heraus. Aber man will ja jederzeit in der Lage sein herauszufinden, was man vor x Jahren zu diesem oder jenem Thema für einen Unfug verbreitet hat.

Ein gutes Archiv ist Gold wert

Schliesslich vereinfacht ein schönes Archiv auch Zweitverwertungen, zum Beispiel in Buchform. Die (inzwischen leider vom Fortschritt überholten) Kummerbox-Bücher haben sich so mit vergleichsweise geringem Aufwand produzieren lassen. Es braucht im Wesentlichen nämlich nur einen Copy-Befehl:

copy kummerbox*.html kummerboxbuch.html

Und dann muss man nur noch die Datei kummerboxbuch.html an die Druckerei schicken. Naja, fast. Ein bisschen Nachbearbeitung der HTML-Datei, Gliederung und Aktualisierung sind schon nötig. Und nicht zur vergessen der Index – den zu erstellen, ist eine Sklavenarbeit.

Für dieses Archiv bemühe ich die Bestände des SMD. Das enthält die Texte in der veröffentlichten Form und ist einigermassen benutzerfreundlich. Aber eben: Das HTML, das man von dort bekommt, ist … nun ja, ebenfalls etwas exzentrisch. Vor allem seit dem Relaunch der Seite anfangs 2017. Da werden Textabschnitte in unzählige Div-Tags gekapselt, dass man sich fragt, ob einer eine Wette verloren hat, mit Absicht Schindluder treibt oder ob die Verwendung dieses (hier nicht strukturierenden) Strukturelements beim SMD irgendwie bonusrelevant ist.

Was soll dieser Schindluder hier?

Für diejenigen, die nicht mit HTML vertraut sind:

Statt …

            <div class="tx">
               <div class="ld">
                  <div class="p">
                     <div class="p">Ein ehemaliger Firefox-Entwickler sagt, Sicherheitsprogramme seien nicht Teil der
                        Lösung, sondern Teil des Problems. Er ist nicht der Einzige, der harsche Kritik übt.
                        Zeit, diese Programme über Bord zu werfen?
                     </div>
                  </div>
               </div>

… könnte man auch einfach schreiben …

<p class=ld>Ein ehemaliger Firefox-Entwickler sagt, Sicherheitsprogramme seien nicht Teil der Lösung, sondern Teil des Problems. Er ist nicht der Einzige, der harsche Kritik übt. Zeit, diese Programme über Bord zu werfen?</p>

Das hätte sogar den Vorteil, dass es logisch und nachvollziehbar wäre und der Art und Weise entsprechen würde, wie man HTML sinnvollerweise verwendet. Aber gut, warum einfach, wenn es auch kompliziert geht, ist ja das Lebensmotto von vielen Leuten.

HTML per Regex aufräumen

Nun würde ein vernünftiger Mensch achselzuckend zum Tagesgeschehen zurückkehren. Nicht so ich. Ich habe bei Herrn Mumprecht nachgefragt, warum sie es so machen, wie sie es machen. Und ich habe für Notepad++ (Das Textmonster) ein Python-Script geschustert, dass dieses Chaos per Regex aufräumt. Und zwar unter Missachtung dieser netten Warnung hier:

Der Tipp am Ende ist natürlich der richtige. Auf freeformatter.com gibt es – nebst unzähligen anderen nützlichen Instrumenten wie XML Validator, JSON Validator, HTML Validator, QR Code Generator, Regular Expression Tester, JSON to XML Converter, XML to JSON Converter und Lorem Ipsum Generator – eine Möglichkeit zur XML-Transformation. Vielleicht packt mich ja mal die Lust, das Problem mit diesem Werkzeug zu erschlagen…

Kommentar verfassen