Ubuntu 14.04 Trusty Tahr
Ubuntu 12.04 Precise Pangolin
Pygments 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-Elemente farbig hervorgehoben sind, was in der Regel die Lesbarkeit erhöht.
Inyoka verwendet Pygments zur Syntax-Hervorhebung, ebenso wie eine Reihe weiterer Projekte .
Pygments ist in den Ubuntu-Quellen für Python 2 und Python 3 enthalten [1]:
python3-pygments
mit apturl
Paketliste zum Kopieren:
sudo apt-get install python3-pygments
sudo aptitude install python3-pygments
bzw. für Python 2:
python-pygments
mit apturl
Paketliste zum Kopieren:
sudo apt-get install python-pygments
sudo aptitude install python-pygments
Je nach Ubuntu-Version ist nicht die neueste Pygments-Version in den Quellen enthalten. Wer diese unbedingt benötigt, kann das Programm auch über pip manuell installieren
Fremdsoftware kann das System gefährden.
Es gibt zwei Möglichkeiten, Pygments zu nutzen: Über das Kommandozeilen-Programm pygmentize oder über das Python-Modul.
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 in der Dokumentation .
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 nachlesen kann.
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 . Alle Funktionen, die pygmentize beherrscht stehen auch innerhalb von Python zur Verfügung.
Diese Revision wurde am 24. März 2016 16:25 von wxpte erstellt.