out of the box: highlight

Aus LinuxUser 01/2003

out of the box: highlight

Farbcodes

Wenn Sie selbstgeschriebene Quelltexte in eine Web-Seite oder eine Dokumentation integrieren, macht es sich gut, wenn die jeweiligen Codefragmente durch Syntax-Highlighting besser lesbar werden. Highlight bewältigt diese Aufgabe für Sie.

out of the box

Es gibt tausende Tools und Utilities für Linux. “out of the box” pickt sich die Rosinen raus und stellt pro Monat ein Progrämmchen vor, das wir für schlichtweg unentbehrlich oder aber zu Unrecht wenig beachtet halten.

Editoren mit Syntax-Highlighting gibt es viele, allerdings erlaubt es kaum einer, die formatierte und eingefärbte Darstellung zu speichern. Die Lücke füllt Highlight von André Simon, das allein diesem Zweck dient und unter der Adresse http://www.andre-simon.de/ zu beziehen ist. Natürlich befindet sich das Quelltext-Archiv highlight-1.3.tar.gz auch auf der Heft-CD. Da sich die Installation nicht im bekannten Dreisatz ./configure; make; make install erschöpft, legen wir zudem das Shell-Skriptinsthighlight.sh bei.

Diese beiden Dateien kopieren Sie in ein gemeinsames Verzeichnis. Dann starten Sie das Skript mit dem Kommando

sh insthighlight.sh

Im Verlauf der Installation fragt es Sie nach dem root-Passwort, weil es Schreibrechte im /usr/local-Zweig des Dateisystems braucht, genauer in /usr/local/bin und /usr/local/share/highlight.

Licht an

Für den ersten Einsatz des Programms reicht ein Aufruf in der Form

highlight -I quelldatei > ausgabedatei.html

Highlight erkennt den Typ der eingelesenen Datei an der Endung. Für die Ausgabe stehen drei Formate zur Verfügung: HTML mit Cascading Style Sheets (CSS), das Rich Text Format (RTF) und TeX.

Die Option -I bewirkt, dass die Style-Sheet-Definition in die Ausgabe-HTML-Datei integriert wird – ohne sie erzeugt das Programm eine separate Datei highlight.css im Arbeitsverzeichnis. Die entstandene Ausgabe können Sie sich in einem CSS-fähigen Browser ansehen. Abbildung 1 zeigt eine POV-Ray-Szenenbeschreibung, dargestellt von Mozilla.

Abbildung 1: HTML-Syntax-Highlighting in Mozilla

Abbildung 1: HTML-Syntax-Highlighting in Mozilla

Farben und Formen

Falls Ihnen die Farbwahl nicht gefällt, probieren Sie einfach einen anderen Stil aus. Dies geschieht mit der Option -s, gefolgt vom Stil-Namen. Meine persönlichen Favoriten sind blue und darkness. Eine Übersicht der vorhandenen Stile erhalten Sie mit dem Kommando

ls /usr/local/share/highlight/@L: *.style

Um herauszufinden, welche Quelltext-Arten Highlight unterstützt, geben Sie das Kommando

ls /usr/local/share/highlight/@L: *.lang

ein. Aufmerksame Leser stellen dabei fest, dass die für Abbildung 1 verwendete Sprachdefinitionsdatei pov.lang nicht zu den aufgelisteten Dateien gehört. Wir liefern sie zusätzlich auf der Heft-CD mit – kopieren Sie pov.lang einfach nach /usr/local/share/highlight!

Für den Fall, dass die Eingabedatei keine passende Endung im Namen trägt, geben Sie den Dateityp mit der Option -S gefolgt vom Namen der Syntaxdefinition vor und lassen die Eingabedaten mit < von der Standardeingabe lesen. Beispielsweise erkennt Highlight das persönliche Start-Skript ~/.bashrc nicht automatisch als Shell-Skript, weil die Endung .sh fehlt. Mit der entsprechenden Vorgabe klappt es:

highlight -I -S sh < ~/.bashrc > bashrc.html

Wer schön formatierten Code in ein Office-Dokument einbinden will, generiert mit der Option -R nicht HTML, sondern RTF als Ausgabeformat:

highlight -R quelldatei > ausgabedatei.rtf

Mit dem RTF-Importfilter von Open- oder StarOffice lesen Sie nun die Ausgabedatei in ein existierendes Dokument ein. Abbildung 2 zeigt als Beispiel das Installationsskript, eingebettet in ein StarOffice-Dokument.

Abbildung 2: Schön formatiert und als RTF eingelesen

Abbildung 2: Schön formatiert und als RTF eingelesen

Anwender des Satzsystems TeX werden sich freuen, dass Highlight auch eine Ausgabe in diesem Format anbietet. Hierfür lautet der Aufruf

highlight -T quelldatei > ausgabedatei.tex

Um aus der .tex-Datei ein PostScript-Dokument zu machen, das sich mit gv anzeigen (Abbildung 3) oder mit lpr drucken lässt, muss sie noch den TeX-Interpreter und das Konvertierungstool dvips passieren:

tex ausgabedatei.tex
dvips ausgabedatei.dvi

Eine LaTeX-Ausgabe produziert die Option -L. Diese hat allerdings einen kleinen Schönheitsfehler: In der erzeugten Datei fehlt in der vorletzten Zeile eine geschweifte Klammer.

Abbildung 3: Ein PostScript-Dokument erhält man auf dem Umweg über TeX

Abbildung 3: Ein PostScript-Dokument erhält man auf dem Umweg über TeX

Sprachschatz erweitern

Wenn Highlight die Syntax Ihrer Lieblingsprogrammiersprache oder einer Konfigurationsdatei nicht kennt, besteht die Möglichkeit, das Programm um eine neue Sprachdefinition zu erweitern. Dazu müssen Sie nichts neu kompilieren oder gar umschreiben, sondern lediglich die Schlüsselwörter der Sprache in einer Datei mit der Endung .lang aufführen und diese im Verzeichnis /usr/local/share/highlight ablegen. Deren Aufbau ist simpel:

  • Alle Zeilen, die mit dem Hash-Zeichen # beginnen, sind Kommentare und werden ignoriert.
  • Hinter die Angabe KEYWORDS= gehören alle Schlüsselwörter der Sprache, jeweils durch Leerzeichen getrennt. Die Auflistung muss komplett in einer Zeile stehen.
  • Im Anschluss an die Kennung TYPESMODS= listen Sie alle Typen auf, die die Sprache kennt. Wie bei den Schlüsselwörtern darf dazwischen kein Zeilenumbruch stehen.
  • Auf STRINGDELIMITERS= folgen die Zeichen, mit denen Zeichenketten (“Strings”) eingeleitet bzw. abgeschlossen werden.
  • Hinter SINGLELINECOMMENT= gehört das Zeichen (oder die Zeichenfolge), die einen einzeiligen Kommentar einleitet.
  • MULTILINECOMMENT= bezeichnet die Zeichen oder Zeichenfolgen für mehrzeilige Kommentare.
  • ISCASESENSITIVE= bestimmt, ob Highlight bei den Schlüsselwörtern zwischen Groß- und Kleinschreibung unterscheiden soll (true) oder nicht (false).
  • DIRECTIVE= legt das Zeichen fest, mit dem die Sprache Compiler-Direktiven einleitet.
  • ESCCHAR= definiert das Zeichen, das die Bedeutung von Sonderzeichen in der Sprache aufhebt (“escaped”).

Fehlt einer Sprache eine der aufgelisteten Kategorien, darf die Angabe dazu fehlen. Beispielsweise kennt die Shell bash keine mehrzeiligen Kommentare, weshalb die Datei sh.lang die Zeile MULTILINECOMMENT= vermissen lässt.

Neue Sprachdefinitionen nimmt der Autor von Highlight gern entgegen. Falls Ihnen also über die Weihnachtsfeiertage langweilig wird, können Sie zum Beispiel eine Sprachdefinition für .lang-Dateien verfassen …

Glossar

Syntax-Highlighting

Meist farbiges Hervorheben bestimmter Sprachelemente in einem Quelltext oder einer Konfigurationsdatei.

Shell-Skript

Eine Datei mit Shell-Kommandos, die automatisch abgearbeitet werden. Häufig wiederkehrende Arbeitsschritte lassen sich durch Shell-Skripte gut automatisieren.

Cascading Style Sheets

Ein Zusatz zu HTML, der die konkrete Formatierungsauszeichnung von der logischen Struktur des Dokuments trennt.

TeX

Ein professionelles Textsatzsystem, das sich besonders gut zum Formelsatz eignet.

LaTeX

Ein professionelles Textsatzsystem, das sich besonders gut zum Formelsatz eignet.

POV-Ray

Ein frei kopierbares Raytracing-(3D-Grafik)-Programm, das auf vielen Betriebssystemen zuhause ist – so auch auf Linux. Seine Homepage finden Sie unter http://www.povray.org/.

Compiler-Direktiven

Ein Schlüsselwort zur Steuerung der Übersetzung, etwa zum Ausklammern bestimmter Code-Abschnitte.

LinuxUser 01/2003 KAUFEN
EINZELNE AUSGABE
ABONNEMENTS
TABLET & SMARTPHONE APPS
E-Mail Benachrichtigung
Benachrichtige mich zu:

Hinweis: Dieser Artikel ist älter als ein Jahr, enthaltene Informationen sind möglicherweise veraltet.

0 Kommentare
Älteste
Neuste Beste Bewertung
Inline Feedbacks
Alle Kommentare anzeigen
Nach oben