Anwendungen
Portal
Forum
Wiki
Ikhaya
Planet
Mehr
Anmelden

Pygments

Dieser Artikel wurde für die folgenden Ubuntu-Versionen getestet:

Zum Verständnis dieses Artikels sind folgende Seiten hilfreich:

Inhaltsverzeichnis
  1. Installation
  2. Nutzung
  3. Links

pygments_logo.png Pygments {en} ist ein leistungsfähiges, in Python geschriebenes Programm zur Syntax-Hervorhebung. Das heißt, man übergibt Pygments eine Datei (z.B. den Quellcode eine Programms) und erhält als Ergebnis eine Datei, in der die Syntax-Element farbig hervorgehoben sind, was in der Regel die Lesbarkeit erhöht.

Inyoka verwendet Pygments zur Syntax-Hervorhebung, ebenso wie eine Reihe weiterer Projekte {en}.

Installation

Paketquellen

Pygment ist in den Ubuntu-Quellen enthalten [1]:

  • python-pygments

Wiki/Vorlagen/Installbutton/button.png mit apturl

Paketliste zum Kopieren:

sudo apt-get install python-pygments 

sudo aptitude install python-pygments 

Manuell

Je nach Ubuntu-Version ist nicht die neueste Pygments-Version in den Quellen enthalten. Wer diese unbedingt benötigt, kann das Programm auch über Python easy_install mit dem Befehl [2] [3]

sudo easy_install pygments 

installieren.

Hinweis!

Fremdsoftware kann das System gefährden.

Nutzung

Es gibt zwei Möglichkeiten, Pygments zu nutzen: Über das Kommandozeilen-Programm pygmentize oder über das Python-Modul.

Pygmentize

Pygmentize ist das Kommandozeilen-Programm zu Pygments.

Die allgemeine Syntax lautet:

pygmentize -l LEXER -f FORMATTER [-O WEITERE_OPTIONEN] -o ZIELDATEI EINGABEDATEI 

Zwingend ist dabei allerdings nur die EINGABEDATEI. Wird keine AUSGABEDATEI definiert erfolgt die Ausgabe auf stdout, also in der Regel den Bildschirm.

Die Option -l legt den Lexer fest. Dies bedeutet, dass man vorgibt, um welche Eingabedatei es sich handelt (Python-Code, HTML-Datei, Make-File usw.). Gibt man die Option nicht an, versucht Pygments anhand der Datei-Endung zu erraten, um welche Datei es sich handelt. Gibt man die Option -g an, so wird versucht, anhand des Datei-Inhalts die Art der Eingabedatei zu erraten.

Die Option -f gibt an, wie die ZIELDATEI formatiert werden soll. Zur Auswahl stehen eine Vielzahl von Ausgabeformaten wie HTML, LaTex, diverse Grafik-Formate usw.

Je nach Ausgabeformat stehen eine Reihe von Optionen zur Verfügung, die mit -O OPTION übergeben werden. Werden mehrere Optionen benötigt, kann man -O mehrfach angeben. Einen Überblick über die gängigen Optionen gibt es hier {en}.

Beispiel:

pygmentize -l python -f html -o codeseite.html quellcode.py 

Dieser Befehl würde die Datei quellcode.py laden, den Code gemäß dem Python-Lexer hervorheben, die Ausgabe als HTML-Seite formatieren und in der Datei codeseite.html speichern. Allerdings wird so keine vollständige HTML-Seite erzeugt, sondern nur eine Teil (hauptsächlich <div class="..."> und <span class="...">, außerdem werden die CSS-Stile weder intern definiert noch eine externe CSS-Datei angelegt.

Der Befehl

pygmentize -l python -f html -O full -o codeseite.html quellcode.py 

erzeugt eine vollständige HTML-Datei (also inkl. <html>,<head>,<body> usw.) mit intern definierten CSS-Stilen.

Über den Aufruf

pygmentize -l python -f html -O full -O cssfile="quellcode.css" -o codeseite.html quellcode.py 

erhält man eine vollständige HTML-Datei und eine externe CCS-Datei mit dem Namen quellcode.css, welche in der HTML-Dateie eingebunden wird.

Eine vollständige Übersicht über alle Lexer und Formatter erhält man über den Aufruf von

pygmentize -L 

Pygmentize kennt noch eine Reihe weiterer Optionen, welche man in der Manpage oder Online-Dokumentation {en} nachlesen kann.

Python Modul

Mit der Installation von Pygments werden die entsprechenden Python-Module installiert.

Dieses können über den übliche Weg

1
2
3
import pygments
# alternativ
from pygments import ...

in Python geladen werden.

Auf der Projekte-Seite gibt es eine vollständige Übersicht über die Pygments-API {en}. Alle Funktionen, die pygmentize beherrscht stehen auch innerhalb von Python zur Verfügung.