ubuntuusers.de

Du betrachtest eine alte Revision dieser Wikiseite.

Pygments

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

Dieser Artikel ist mit keiner aktuell unterstützten Ubuntu-Version getestet! Bitte teste diesen Artikel für eine Ubuntu-Version, welche aktuell unterstützt wird. Dazu sind die Hinweise zum Testen von Artikeln zu beachten.

Zum Verständnis dieses Artikels sind folgende Seiten hilfreich:

Inhaltsverzeichnis
  1. Installation
  2. Nutzung
  3. Links

pygments_logo.png 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 🇬🇧.

Installation

Paketquellen

Pygments ist in den Ubuntu-Quellen für Python 2 und Python 3 enthalten [1]:

  • python3-pygments

Befehl zum Installieren der Pakete:

sudo apt-get install python3-pygments 

Oder mit apturl installieren, Link: apt://python3-pygments

bzw. für Python 2:

  • python-pygments

Befehl zum Installieren der Pakete:

sudo apt-get install python-pygments 

Oder mit apturl installieren, Link: apt://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 pip manuell 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 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.

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 🇬🇧. Alle Funktionen, die pygmentize beherrscht stehen auch innerhalb von Python zur Verfügung.

Diese Revision wurde am 7. Mai 2017 12:10 von Heinrich_Schwietering erstellt.
Die folgenden Schlagworte wurden dem Artikel zugewiesen: Python, Programmierung