AA_tunnel_fialvoloka_sxc_1035940.jpg

© flaivoloka, sxc.hu

Texte konvertieren mit Pandoc

Flott durchgereicht

Mal eben einen Text in fünf verschiedene Formate konvertieren? Kein Problem für Pandoc, den flexiblen Dokumentenwandler.

Beim Erstellen von Dokumentationen und technischen Texten haben sich strukturierte Formate durchgesetzt. Sie bieten den Vorteil, dass man damit die Bestandteile des Inhalts einfach semantisch auszeichnet und bei Bedarf die benötigten Textteile entsprechend aufbereitet. Lange Zeit galt Docbook hier als Maß der Dinge – allerdings enthält die Spezifikation viele Elemente, die in der Praxis selten zum Einsatz kommen. Zudem macht das XML-Markup den Text schnell unleserlich.

Gerade bei Texten fürs Web setzten sich im Laufe der Zeit einfachere Markups durch, so zum Beispiel Textile [1] oder Markdown [2] (siehe Kasten "Text-to-HTML"). Mit einem passenden Konverter wandeln Sie diese Formate mittels regulärer Ausdrücke in XHTML um, das Sie mit CSS anschließend sehr leicht in Form bringen. Pandoc [3] treibt die Idee noch ein Stück weiter und ermöglicht eine Vielzahl von Ausgabeformaten, darunter LaTeX, PDF und OpenDocument-Text (ODT).

Text-to-HTML

Text-to-HTML-Systeme vereinfachen das Publizieren von standardkonformen XHTML-Dokumenten. Sie bieten dem Autor ein einfaches Markup-System basierend auf Hash-Symbolen (#), Plus- und Minuszeichen, dem Asterisk (*) sowie Binde- und Unterstrichen. So trennen diese Systeme die Struktur und die Präsentation des Dokuments vollständig, da letztere erst im Browser mittels Cascading Stylesheets geschieht.

Blogs und Wikisysteme nutzen diese Syntax sehr intensiv, da sie auch Einsteiger ohne HTML-Kenntnissen das Schreiben von Web-Texten ermöglicht. Viele der der Konverter erlauben aber das Einbetten echter HTML-Elemente, sodass anspruchsvollere Kontruktionen trotzdem möglich bleiben. Zu den bekanntesten Vertretern der Gattung gehören Restructured Text [4], Textile und die Mediawiki-Syntax.

Die vollständige Liste der Formate fällt recht lang aus (siehe Tabelle "Pandoc-Formate") und wächst mit jedem Release. Der Grund liegt im Konzept des Wandlers, der auf einer Haskell-Bibliothek aufsetzt: Er arbeitet mit Parser-Modulen für jede unterstützte Sprache. Um eine neue Syntax hinzuzufügen, braucht also niemand das Rad neu zu erfinden – es reicht, ein so genanntes Reader- oder Writer-Modul zu programmieren.

Pandoc-Formate

Format Eingabe Ausgabe
ASCII-Text nein ja
ConTeXt nein ja
Docbook XML nein ja
EPUB nein ja
Gnu Texinfo nein ja
Groff (Manpages) nein ja
HTML Teilweise ja
LaTeX Teilweise ja
Markdown ja ja
Mediawiki nein ja
ODT nein ja
OpenDocument XML nein ja
PDF nein ja (via LaTeX)
Restructured Text Teilweise ja
RTF nein ja
S5 nein ja
Slidy HTML (Präsentation) nein ja

Als bevorzugtes Eingabeformat verwendet Pandoc eine erweiterte Form des oben genannten Markdown-Formats. Im Gegensatz zum ursprünglichen Format von John Gruber bietet die Variante von Pandoc aber einige Erweiterungen, die zum Beispiel das Auszeichnen von Tabellen vereinfachen oder Definitionen ermöglichen. Einmal verinnerlicht, schreiben Sie so sehr schnell auch komplexe Texte. Einen ersten Überblick über die Markdown-Syntax liefert die deutsche Übersetzung des Tutorials [5].

Um einen ersten Eindruck von den Möglichkeiten des Konverters zu erhalten, lohnt es sich, das Testformular auf der Website des Projektes zu nutzen (Abbildung 1). Hier geben Sie den Ausgangstext in das Eingabefeld ein, wählen das Eingabe- sowie das gewünschte Ausgabeformat aus und erhalten über die Schaltfläche Convert das entsprechende Ergebnis.

Abbildung 1: Über ein einfaches Webfrontend testen Sie komfortabel die Möglichkeiten der Haskell-Bibliothek, ohne das Tool auf Ihrem System zu installieren.

Der beigelegte Standalone-Konverter verhält sich wie viele der klassischen Linux-Tools: Er arbeitet als Pipe. Geben Sie keine Datei als Argument an, liest er von der Standardeingabe; definieren Sie keine Ausgabedatei, schreibt das Tool auf die Standardausgabe. Um aber in den vollen Genuss der Möglichkeiten zu kommen, lohnt sich trotzdem der Einsatz einiger Optionen.

Optionales

In der Vorgabe produziert Pandoc nämlich nur ein Fragment, das genau dem Eingabetext entspricht. Bei einem HTML-Dokument fehlen also Header und Footer. Mit -s erzeugen Sie dagegen eine vollständige Datei. Pandoc bietet darüber hinaus eine Vielzahl von Möglichkeiten, um das Resultat noch mit statischen Teilen zu kombinieren. So erlaubt es das Einfügen von Text vor und nach dem Body-Element in HTML beziehungsweise der Dokumentenumgebung in LaTeX.

Mit der Option -r (alternativ -f) und einem passenden Parameter geben Sie das Eingabeformat an. Über -w (alternativ -t) definieren Sie das Format der Ausgabe. Pandoc erwartet, dass Sie die Dokumente in UTF-8 kodieren. Die Ausgabe erfolgt immer in diesem Format. Haben Sie Dateien in einem anderen Encoding vorliegen, so bietet sich der Einsatz eines Wandlers wie Iconv an.

Vorlagen

Um das Aussehen der Formate EPUB, LaTeX, ODT oder HTML zu beeinflussen, erlaubt es das Tool, alternative Stylesheets, Referenzdokumente oder Templates anzugeben, die dann alle notwendigen Angaben für das gewünschte Design enthalten. Die Option -D beziehungsweise --print-default-template gibt in Zusammenspiel mit der Abkürzung für das entsprechende Format das interne Template aus.

Leiten Sie diese Ausgabe einfach in eine Datei um und passen Sie diese dann gemäß Ihren Vorstellungen an. Danach binden Sie das modifizierte Template mit der Langoption --template Datei beim Konvertieren ein. Dabei zeigen sich in der Praxis auch einige Tücken der Software.

Pandoc richtet sich in erster Linie an Autoren aus dem englischsprachigen Raum. So fehlen im internen Template für LaTeX einige Paketdefinitionen, die in einer deutschsprachigen Umgebung durchaus Sinn ergeben würden, so zum Beispiel der Einsatz von folgender Deklaration:

\usepackage[ngerman]{babel}

Allerdings bietet die Software die Möglichkeit, diese wie beschrieben über ein eigenes Template nachzuziehen. In diesem Template finden sich Variablen, gekennzeichnet durch ein Dollarzeichen an Anfang und Ende. Mit dem Konstrukt -V Variable=Wert überschreiben Sie diese auf der Kommandozeile.

LinuxCommunity kaufen

Einzelne Ausgabe
 
Abonnements
 
TABLET & SMARTPHONE APPS
Bald erhältlich
Get it on Google Play

Deutschland

Ähnliche Artikel

Kommentare

Infos zur Publikation

LU 12/2017: Perfekte Videos

Digitale Ausgabe: Preis € 5,95
(inkl. 19% MwSt.)

LinuxUser erscheint monatlich und kostet 5,95 Euro (mit DVD 8,50 Euro). Weitere Infos zum Heft finden Sie auf der Homepage.

Das Jahresabo kostet ab 86,70 Euro. Details dazu finden Sie im Computec-Shop. Im Probeabo erhalten Sie zudem drei Ausgaben zum reduzierten Preis.

Bei Google Play finden Sie digitale Ausgaben für Tablet & Smartphone.

HINWEIS ZU PAYPAL: Die Zahlung ist ohne eigenes Paypal-Konto ganz einfach per Kreditkarte oder Lastschrift möglich!

Stellenmarkt

Aktuelle Fragen

Broadcom Adapter 802.11n nachinstallieren
Thomas Mengel, 31.10.2017 20:06, 2 Antworten
Hallo, kann man nachträglich auf einer Liveversion, MX Linux auf einem USB-Stick, nachträglich...
RUN fsck Manually / Stromausfall
Arno Krug, 29.10.2017 12:51, 1 Antworten
Hallo, nach Absturz des Rechners aufgrund fehlendem Stroms startet Linux nicht mehr wie gewohn...
source.list öffnet sich nicht
sebastian reimann, 27.10.2017 09:32, 2 Antworten
hallo Zusammen Ich habe das problem Das ich meine source.list nicht öffnen kann weiß vlt jemman...
Lieber Linux oder Windows- Betriebssystem?
Sina Kaul, 13.10.2017 16:17, 6 Antworten
Hallo, bis jetzt hatte ich immer nur mit
IT-Kurse
Alice Trader, 26.09.2017 11:35, 2 Antworten
Hallo liebe Community, ich brauche Hilfe und bin sehr verzweifelt. Ih bin noch sehr neu in eure...