highlighting

Im Ubuntu-Repositorium bin ich auf das Kommandozeilen Programm „highlighting“ gestoßen. Gleich vorweg: Meine Bedürfnisse für Syntax-Highlighting erfüllt es vollkommen. Ich will damit vor allem längere Code-Passagen auf dieser Website lesbarer machen, weswegen die Ausgabe in diesem Artikel in HTML erfolgt. LaTex ist aber beispielsweise auch möglich.

Beispielanwendung

Nach der Installation aus dem Repositorium (denke das sollte jeder selbst hinbekommen), ist highlighting über die Kommandozeile zu bedienen. Ein Beispiel:

1
$ highlight -l -f --inline-css --enclose-pre -S html -i test.html -o test_high.html

Die Bedeutung der Parameter im Detail:

  • -l: Zeilennummern
  • -f: kein Header oder Footer (Voraussetzung für beiden nachfolgenden Optionen)
  • --inline-css: bei HTML keine seperate CSS-Datei, sondern Formatierung „direkt an Ort und Stelle“
  • --enclose-pre: keine vollständige HTML-Datei mit body und header, sondern nur die <pre>-Tags
  • -S: „Sprache“ der Quelle festlegen; hier html
  • -i: Eingabedatei für Syntaxhighlighting
  • -o: Ausgabedatei

Ich nutze hier ausnahmsweise CSS inline, da ein generiertes externes CSS-Stylesheet nur die aktuell verwendeten Regeln auswirft. Eine Option, um ein komplettes Stylesheet für einen Stil ausgeben zu lassen, habe ich nicht gefunden. Damit wir der Hauptnutzen von externem CSS meiner Meinung nach ad absurdum geführt, nämlich das Caching. Denn wenn für jede neuen Codeblock ein eigenes Stylsheet geladen werden muss, kann man dies gleich inline schreiben. Das spart nur HTTP-Requests – die fehlende Trennung von Inhalt und Design ignoriere ich hier jetzt einmal.

Themes

Das Aussehen der Ausgabe kann man über vorgegeben Themes verändern.

1
$ highlight -w

Gibt eine Liste mit allen installierten Themes aus. Wie die einzelnen Themes aussehen, sieht man auf zwei (unvollständigen) Wiki-Seiten: Seite 1, Seite 2

Meine Favoriten sind die Stile „acid“, „bright“, und „zmrok“. Das Standardtheme ist aber auch nicht schlecht. Auf dieser Website werde ich in Zukunft wohl „zmrok“ verwenden.

Skript zum Ausprobieren

Da die Wikiseite wie oben geschrieben unvollständig ist, hab ich mir mal ein kleines Shell-Skript geschrieben. Dieses probiert anhand einiger Dateien im Ordner „org“ die unterschiedlichen Themes für verschiedenen Programmiersprachen aus. Dabei ist für jede Programmiersprache eine eigenen Beispieldatei im „org-Ordner“. Entsprechend der Dateiendung wird ein Ordner angelegt. Mit den ausgegeben HTML-Dateien ist dann ein Vergleichen der Themes relativ gut möglich.

Das Archiv enthält schon einen Durchlauf des Skripts unter Ubuntu 12.04. Möchte man es auf seinem eigenen Rechner ausführen, reicht ein einfaches

1
$ bash test_highlighting.sh

im selben Ordner. Wer möchte, kann davor alle Ordner außer „org“ löschen.

Beispiel: JS-Code, Theme „zmork“

Zum Abschluss noch ein Beispiel für das meiner Meinung nach schönste Theme „zmork“

Zmrok stellt Code mit Orange für Zahlen, Braun für Steuerungswörter und einem dunklen Blau für Funktionen dar. Textfarbe ist sonst ein helles Grau.

(Als Screenshot, da ich mittlerweile auf pygments setze)

Kommentare

Noch kein Kommentar zu diesem Artikel.

Neuen Kommentar schreiben