HTMLppc

Download-Link: htmlppc 0.2

HTMLppc ist ein einfaches Include-Werkzeug, das die Erstellung von statischen Web-Projekten vereinfacht (oder wenigstens vereinfachen soll).

Das Programm ist in Python 3 geschrieben, sollte also auch auf anderen Plattformen verwendbar sein. Allerdings liefere ich nur ein Makefile, das die Installation unter unixoiden Betriebssystemen vereinfacht.

Die Dokumentation liegt in Form einer englischsprachigen man-page und im HTML-Format vor. HTMLppc ist – anders als viele Inhalte hier, die ich unter Piratenlizenz stelle – unter den Bedingungen der GNU General Public License, Version 2 (oder jede spätere Version) lizenziert.

Warum verwendet man HTMLppc

Eines der Ärgernisse, wenn man ein Projekt aus statischen HTML-Seiten verwaltet, ist, dass es immer wieder einmal zu »großen Akten« kommt, wenn etwas an der Navigation verändert wird. Häufig müssen viele Dateien bearbeitet werden.

Der gängige Workaround, einfach ein FRAMESET zu verwenden, ist keine so gute Idee. Nicht nur, weil das »nach Neunziger Jahren riecht«, sondern auch, weil die Darstellung mehrerer Dokumente in einem Browserfenster verwirrend sein kann und sowohl schwer körperbehinderte als auch blinde Menschen ausschließt. Einmal ganz davon abgesehen, dass ein Google-Suchergebnis dann eine Einzelseite ohne Navigation und inneren Kontext liefert, was auch häufig unerwünscht sein wird.

Was fehlt, um diese Situation zu verbessern, ist eine Art »Include« für HTML. Wenn es möglich ist, auf einem Webserver PHP oder server side includes zu verwenden, ist das relativ leicht zu erledigen. Dieser Aufwand mag jedoch im einen oder anderen Fall unangemessen erscheinen, ferner wird dadurch die Verwendung im lokalen Dateisystem erschwert, wenn nicht ein Download mit einem Werkzeug wie wget angefertigt wird. Dass statische HTML-Seiten unüberbietbar performant sind, dürfte nur in den wenigsten Fällen eine Rolle spielen – aber wer darüber nachdenkt, ein großes CMS für ein relativ kleines Webprojekt mit… sagen wir mal… dreißig Seiten zu verwenden, ist vielleicht mit HTMLppc besser bedient.

Wie verwendet man HTMLppc

Zunächst schreibt man ganz normale HTML-Seiten, in die allerdings einige spezielle Kommentare eingefügt werden, in denen die Anweisungen für HTMLppc formuliert werden. Das sieht im HTML-Quelltext ungefähr so aus¹:

<html>
<head>
<title>Titel</title>
<link rel="stylesheet" href="style.css" />
<!-- include Headerzeilen -->
<!-- end -->
</head>
<body>
<div id="navigation">
<!-- include Navigation -->
<!-- end -->
</div>
<h1>Blah</h1>
<p>Text text text...</p>
<div id="footer">
<!-- include Footerzeilen -->
<!-- end -->
</div>
</body>
</html>

Kurz: Der Bereich, in dem etwas eingefügt werden soll, beginnt mit dem Kommentar <!-- include NAME -->, wobei NAME ein Identifikator dafür ist, was dort eingefügt werden soll. Der Bereich muss mit <!-- end --> enden. Eine Verschachtelung derartiger Bereiche ist übrigens nicht möglich.

Zusätzlich wird eine Datei namens include.txt angelegt – das ist der Vorgabename, es kann ein beliebiger anderer Name an der Kommandozeile übergeben werden. Diese könnte etwa so aussehen:

# Diese Zeile ist ein Kommentar und wird ignoriert
Headerzeilen
<http-equiv="Content-type" content="text/html; charset=utf-8" />

Navigation
<a href="index.html">Start</a>
<a href="blah.html">Blah</a>
<a href="blub.html">Blubb</a>

Footerzeilen
<p>Es wird keine Haftung für Hirnschäden übernommen</p>

Kurz gesagt: Kommentare sind Zeilen, die mit # beginnen. Sie werden vollständig ignoriert. Eine nicht-leere Zeile am Anfang einer Datei oder nach einer Leerzeile definiert einen Identifikator für den Include. Darauf folgen die einzufügenden Zeilen, abgeschlossen mit einer Leerzeile.

Natürlich müssen die Identifikatoren eindeutig sein.

Dann kann einfach HTMLppc im Verzeichnis mit dem Projekt aufgerufen werden:

$ htmlppc

Dieses Programm geht rekursiv alle Unterverzeichnisse durch und fügt die in include.txt definierten Abschnitte an den gewünschten Stellen in die HTML-Dateien ein.

Wenn dabei ein Fehler auftritt, wird der Vorgang abgebrochen und eine Fehlermeldung ausgegeben, die angibt, in welcher Datei bei welcher Zeile welcher Fehler aufgetreten ist. Ich habe darauf geachtet, dass die gerade bearbeitete Original-Datei dabei unverändert bleibt, so dass es nicht zu Datenverlusten kommen kann. Aber natürlich geht manchmal alles schief, und deshalb ist ein Backup immer eine gute Idee, bevor man Automatismen auf mühsam erstellte Dokumente loslässt.

Bei erfolgreicher Bearbeitung gibt es keine Ausgaben. Keine Nachricht ist hier also eine gute Nachricht. Wer sich in dieser Stille nicht so wohl fühlt, kann natürlich ausführliche Ausgaben mit einer Option veranlassen:

$ htmlppc -v

Nun gibt es eine Meldung für jede Definition, die eingelesen wurde, für jedes Verzeichnis, das betreten wurde und für jede HTML-Datei, die bearbeitet wurde. Weil das eine Menge Text ist, der recht schnell durchscrollt, ist es vermutlich empfehlenswert, diese Ausgabe in eine Datei umzuleiten. Dafür hat man ja auch eine Shell… ;)

Alles weitere verrät die mitinstallierte man-page.

Installation

Da das Ganze in einer Skriptsprache gecodet ist, vereinfacht sich die Installation erheblich. Ein ./configure ist nicht erforderlich. Einfach…

$ make
$ sudo make install

…tippen, und die Dateien werden in die entsprechenden Zweige von /usr/local installiert.

Abschließendes

Ja, HTMLppc war ein Wegwerfprogramm, das ich in seiner ersten Version in einer Stunde »rausgerotzt« habe – aber es erschien mir dann doch zu schade zum Wegwerfen. Dass ich es veröffentliche, spart vielleicht jemanden anders die Mühe, sich ein derartiges Tool selbst zu schreiben.

¹Entschuldigung für das sehr kurze Beispiel, aber HTML-Quelltexte in HTML zu formatieren, gehört zu den Tätigkeiten, die nachhaltig aufs Gehirn schlagen…

Ein Kommentar zu HTMLppc

  1. Rob Kenius sagt:

    Hallo Elias,
    leider kann ich aus deiner Einführung nicht ersehen, ob das Programm für mich einen Nutzen hätte, wenn ich meine html-Seite umstrukturieren möchte. Zu viele Fachausdrücke. Ich bin Autodidakt, habe nie Programmieren gelernt, auch nicht aus Büchern, früher hab ich für meinen Tonträger-Vertrieb dbase programmiert bis zum geschlossenen Waren-Wirtschafts-System, jetzt aber mache ich meine Webseite als Autor mit html-zu-Fuss. Grüße und schau mal rein. Rob Kenius

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.