Markdown ist aus meinem Alltag nicht mehr wegzudenken. Die einfach zu erlernende Auszeichnungssprache die [John Gruber](http://daringfireball.net/projects/markdown/) und [Aaron Swartz](http://www.aaronsw.com/) erdacht haben, wird mittlerweile von diversen Plattformen unterstützt. Sogar Bücher, wie zum Beispiel "[The Grumpy Programmer’s Guide to Building Testable Applications in PHP](http://leanpub.com/grumpy-testing)" von [Chris Hartjes](http://www.littlehart.net/), werden damit geschrieben. Da man so gut wie alle gängigen Formatierungen in Markdown vornehmen kann, kommt es für mich oft gar nicht in Frage, Dokumentation oder Notizen in komplexen Programmen zu schreiben. [Textmate](http://macromates.com/), oder wenn es sein muss auch mal `vi`, reichen mir aus. Seinen Kunden will man nicht zumuten, Markdown-Dateien zu lesen. Stattdessen sollen diese schöner formatiert und in einem PDF gesammelt werden. Genau dieses Problem habe ich letztens auf OSX relativ komfortabel gelöst. ## Markdown zu HTML Wenn man PDFs aus Markdown erstellen möchte, macht es sich am besten, diese zuerst in HTML umzuwandeln. Ein Tool, welches u.a. Vorlagen mit einbezieht, Inhaltsverzeichnisse erstellen, in andere Formate umwandeln und damit auch für andere Zwecke genutzt werden kann, ist [pandoc](http://johnmacfarlane.net/pandoc/). Nach der Installation [eines der Packete](http://johnmacfarlane.net/pandoc/installing.html), kann man einzelne Markdown-Dokumente in HTML umwandeln: pandoc README.md -o README.html Das schöne bei pandoc ist, dass man neben Footer, Header oder Stylesheets auch ganze Templates selbst definieren kann, die beim Konvertieren mit einbezogen werden: pandoc -c mystyle.css -A footer.html -H header.html README.md -o README.html Weitere Befehle und genauere Beschreibungen zu den Templates sind im [Pandoc User’s Guide](http://johnmacfarlane.net/pandoc/README.html) nachzulesen. Ganz nett ist auch die Funktion, mit Platzhaltern für Datum oder Autor arbeiten zu können. ## HTML zu PDF Hier gibt es wieder mehrere Möglichkeiten. Um [pandoc](http://johnmacfarlane.net/pandoc/) das PDF-Generieren beizubringen, muss man leider [LaTeX](http://www.tug.org/mactex/2011/) installieren, was auf Grund der Größe des Pakets (mehr als 1 GB) lächerlich erscheint. Wenn man aber auf OSX arbeitet, kann man eine im System "versteckte" Funktion benutzen, die jedes HTML inklusive Stylesheet, Bilder etc. in ein PDF verwandelt: `convert` /System/Library/Printers/Libraries/convert -a "media=A4 portrait" -f README.html -o README.pdf Der Befehl ist leider nicht [wirklich dokumentiert](http://apple.stackexchange.com/questions/14947/what-are-the-secret-options-of-the-pdf-convert-tool-from-os-x); er kann aber auch RTF oder normale Text-Dateien in PDFs konvertieren. Es gibt auch noch weitere Parameter, die man mit `-a` übergeben kann. Welche von den auf [CUPS gelisteten](http://www.cups.org/documentation.php/options.html) funktionieren, konnte ich aber leider nicht finden. ## Beispiel auf GitHub Für [foobugs](http://www.foobugs.com) habe ich ein kleines Beispielprojekt aufgesetzt, mit dem man wunderbar rumspielen und sich für seine Firma oder sein Projekt eine Vorlage erstellen kann. Die Quellen sind im [pandoc-templates Projekt auf GitHub](https://github.com/foobugs/pandoc-template) zu finden.