Texte konvertieren mit Pandoc – HTML, PDF, Markdown, ODT und mehr…

transform_convert_document_shutterstock_153575651

Texte konvertieren // Seit längerem beschäftigt mich eine Frage: »Wie konvertiere ich einen Text von einer Quelldatei in zahlreiche Formate ohne am Ende jede Datei noch einmals bearbeiten zu müssen?« Ein vielversprechendes Werkzeug ist das freie Kommandozeilenprogramm Pandoc.

Pandoc beschreibt sich selbst als universelles Werkzeug für die Dokumentenkonvertierung. Der Programmautor John MacFarlane bringt sein Anliegen wie folgt auf den Punkt.

If you need to convert files from one markup format into another, pandoc is your swiss-army knife.

Mein Problem: One to rule them all!

Wer heutzutage veröffentlichen möchte, sollte dieses mit einer Multi-Content-Strategie machen. Mit Sachbüchern verdient man sich keine goldene Nase. Besser ist in meinen Augen eine Strategie, in welcher man einen Text zerlegt, um diesen anschließend in so vielen Formaten wie möglich anzubieten.

Dabei will ich mit nur einer Datei arbeiten und nicht mit mehreren, die ich dann immer aktualisieren muss. Auch möchte ich gerne unabhängig sein und nicht Kollegen bitten in Indesign ein PDF zu generieren. Bisher waren die Ergebnisse immer durchwachsen und ich brauchte mehrere Werkzeuge.

Mein Problem ist folgendes. Als Autor von Anleitungen möchte ich gerne aber nur ein Dokument pro Anleitung pflegen. Dieses Dokument möchte ich anschließend in zahlreiche Formate konvertieren bzw. mehrere Dokumente zu einem zusammenzufassen. Ich pflege also ein Dokument und generiere daraus alle benötigten Dateiformate. Das wäre…

  • HTML für Websites
  • PDF um es in Buchform zu vertreiben
  • EPUB um es als eBook zu vertreiben (Auch als Kindle-Version)

Ist Latex die Lösung?

LaTeX ist ein Softwarepaket, das die Benutzung des Textsatzsystems TeX mit Hilfe von Makros vereinfacht.

Nachdem ich mir dann gestern ein Latex-Buch gekauft habe, bin ich nachmittags über den Artikel »Sackgasse LaTeX?« gestolpert und habe dann noch »Kindle-eBooks mit Pandoc erstellen« beim verehrten Sachbuchautor Michael Kofler gelesen. Praktischerweise bietet er auch gleich ein eigenes eBook zum Thema an: »Markdown und Pandoc«.

Bevor ich mir das zulege, habe ich mir erst einmal die englische und ausführliche Anleitung von John MacFarlane ausgedruckt, dem Programmierer von Pandoc. Spannend zu sehen, ist das auch Verlage wie z.B. der Open Source Press-Verlag sich von Latex verabschieden. Dort fällt die Entscheidung auf Asciidoc, dass ich noch nicht kannte. Der Vergleich »AsciiDoc, Markdown & Co.« erhellt auch.

Vergiss WYSIWYG, Hallo Kommandozeile

Pandoc schreckt die meisten Nutzer sicherlich ab, da man das Programm nicht über eine grafische Benutzeroberfläche steuert, sondern im Terminal oder einem anderen Kommandozeilenwerkzeug abstrakte Befehle eintippt. Das war bei mir vor geraumer Zeit ähnlich. Mittlerweile sagt mir die Arbeit über die Kommandozeile aber zu, hat viele Vorteile und ist für den Nerd in mir sexy.

Das ist wohl der größte Hinderungsgrund für Pandoc. Danach geht es einfach nur aufwärts, wie mir scheint.

Eine Internetseite in eine ODT-Datei verwandeln

Klicken zum Vergrößern

Klicken zum Vergrößern

$ pandoc -f html -t odt -o matt.odt http://j.mp/m_mcconaughey

Der obige Befehl liest sich erst einmal kryptisch, ist aber so schon leichter zu verstehen, wenn man ihn ein wenig ausführlicher in die Kommandozeile hackt:

$ pandoc --from html --to odt --output matt.odt http://j.mp/m_mcconaughey

Gelesen lautet das: Konvertier bitte ein Dokument von (--from) HTML in das Zielformat (–to) odt und speicher es als Zieldatei (--output) matt.odt ab und schnapp dir als Quelle die Website http://j.mp/m_mcconaughey. Für Tippfaule geht es natürlich noch kürzer:

$ pandoc -f html -o matt.odt http://j.mp/m_mcconaughey

Denn das Zielformat »errät« Pandoc anhand der Dateiendung der Zieldatei. Schick, oder?

Und jetzt die PDF-Umwandlung mit Pandoc

Damit Pandoc Dateien in PDF-Dateien umwandeln kann, benötigt man die Latex-Bibliothek. Denn die Umwandlung basiert auf Latex. Auf einem Mac schnappt man sich dazu die MacTeX-2014 Distribution. Wie man Latex auf dem eigenen Rechner installiert, zeigt der Buchautor Joachim Schlosser des Buches »Das LaTeX-Buch« auf der dazugehörigen Website.

Und dann reicht ein Befehl, wie z.B:

$ pandoc test.txt -o test.pdf

HTML-Dokumente in Markdown-Dokumente konvertieren

Markdown gehört zu meinen Lieblingswerkzeugen, um Texte zu schreiben. Und sämtliche meiner Texte schreibe ich mittlerweile mittels der Markdown-Syntax. Großartig, dass auch hier Pandoc ein wunderbares Werkzeug für die Konvertierung ist. HTML-Dokumente konvertiere ich ohne Probleme mit Pandoc und das Werkzeug löscht sämtliches HTML drumherum. Selbst wenn man nicht mit Markdown arbeitet: Schneller »lutscht« man den Text nicht aus einer HTML-Seite und bringt ihn auch noch gleichzeitig in Form. Und so geht’s

$ pandoc -f html -t markdown -o resultat.md quelldatei.html

Will man die IDs im HTML-Text auch konvertieren, benötigt man einen anderen Parameter: markdown-auto_identifiers. Dieser hilft erstellt bei der Konvertierung dann die IDs innerhalb des Markdown-Dokumentes.

Aus…

<h2 id="seminar-teil-1">Seminar Teil 1</h2>

…wird dann…

## Seminar Teil 1 {#seminar-teil-1}

Foto: »evolution of man from caveman to super hero« von Shutterstock