ORR2014 - 2014-11-12
OpenRheinRuhr 2014
Ein Pott voll Software
Referenten | |
---|---|
Jens Erat | |
Kurt Pfeifle |
Programm | |
---|---|
Tag | 08.11.2014 - 2014-11-08 |
Raum | Vortragsraum 3 |
Beginn | 15:30 |
Dauer | 02:30 |
Info | |
ID | 331 |
Veranstaltungstyp | Workshop |
Track | Enduser |
Sprache der Veranstaltung | deutsch |
Feedback | |
---|---|
Haben Sie diese Veranstaltung besucht? Feedback abgeben |
Einfachen Text schreiben -- viele Formate erhalten
...aus Markdown+Pandoc+Makefile LaTeX, PDF, HTML, MS Word *.docx, EPUB3, Open/LibreOffice *.odt, DocBook und mehr machen
Jeder Software-Entwickler sollte sich darum kümmern, dass seine Programme durch eine ordentliche Dokumentation abgedeckt sind. Aber viele Programmierer erledigen das äußerst ungern. Darum ist die Erstellung von Dokumentation häufig ein "Stiefkind" von Projekten.
Viele Benutzer würden gerne etwas zur besseren Dokumentation von Freier Software beitragen und dadurch zu Committern werden -- und manche tun es schon, oft sogar im Zusammenhang mit mehreren Projekten. Aber dann verwenden unterschiedliche Projekte vielleicht jeweils andere Formate und Werkzeuge zum Schreiben: OpenDocument, HTML, LaTeX, DocBook, ...
Wäre es nicht viel besser, alles in reinem Text zu schreiben? Und dann aus diesem Text automatisiert das End-Format zu erzeugen, welches man verwenden möchte? Oder gar alle möglichen Endformate?
Mit der einfachen Text-Auszeichnungssprache Markdown
ist es möglich. Zum Konvertieren in beliebige Zielformate verwendet man das Kommandozeilen-Tool pandoc
. Zur Automatisierung ein Makefile
...
Jeder Software-Entwickler sollte sich darum kümmern, dass seine Programme durch eine ordentliche Dokumentation abgedeckt sind. Aber viele Programmierer erledigen das äußerst ungern. Darum ist die Erstellung von Dokumentation häufig ein "Stiefkind" von Projekten.
Viele Software-Benutzer würden gerne etwas zur Dokumentation beitragen und dadurch zu Committern werden -- und manche tun es schon, oft sogar im Zusammenhang mit mehreren Projekten. Aber dann verwenden unterschiedliche Projekt vielleicht jeweils andere Formate und Werkzeuge zum Schreiben: OpenDocument, HTML, LaTeX, DocBook, ...
Wäre es nicht viel besser, alles in reinem Text zu schreiben? Und dann aus diesem Text automatisiert das End-Format zu erzeugen, welches man verwenden möchte? Oder gar alle möglichen Endformate?
Mit der einfachen Text-Auszeichnungssprache Markdown
ist es möglich. Zum Konvertieren in beliebige Zielformate verwendet man das Kommandozeilen-Tool pandoc
. Zur Automatisierung ein Makefile
...
Markdown ist ein dermaßen einfaches Textauszeichnungsformat, dass man bei Kenntnis von ca. 12 verschiedenen, einfachen, sehr intuitiv zu erlernenden Formatierungs-Regeln bereits sehr anspruchsvolle Dokumente zustande bringt -- und zwar in allen möglichen Formaten, und in sehr vielen anpaßbaren Stilen.
- Standard-Absätze
- Eingerückte Absätze (Zitat-Blöcke)
- Überschriften erster, zweiter, ... sechster Ordnung
- Nummerierte Aufzählungen (wie diese hier)
- verschachtelte Aufzählungen (wie diese hier)
- (ich bin mir nicht sicher, ob ich dies nicht besser als 14. Regel deklarieren sollte)
- Un-nummerierte Aufzählungen
- Code-Beispiele:
pandoc --to=html
erzeugt HTML-Ausgabe - kursiv hervorgehobene Wörter
- fett hervorgehobene Wörter
- fett+kursiv hervorgehobene Wörter
- Hyper-Links
- Bilder (Beispiel siehe unten)
- Code-Blöcke (Beispiel siehe unten)
- Tabellen
Code-Block-Beispiel
pandoc \
--toc \
--slide-level=2 \
--to=beamer \
--highlight-style=zenburn \
--chapters \
--normalize \
--filter=pandoc-citeproc \
--latex-engine=xelatex \
--from=markdown+mmd_title_block+pandoc_title_block+raw_html+markdown_in_html_blocks \
--output=orr2014-paper.pdf \
-V geometry:margin=1.8cm \
-V geometry:paperwidth=21cm \
-V geometry:paperheight=29.7 cm \
orr2014-paper.mmd
Bild-Beispiel
Wer komplexere Formatierungen benötigt, kann innerhalb des Markdown-Quellcodes auch HTML-Schnipsel verwenden. pandoc
gibt diese beim Übersetzen 1:1 in das Zielformat weiter. (Falls das Ziel-Format LaTeX oder PDF ist, kann man sogar LaTeX-Schnipsel einbetten.)
Die Konvertierung des Markdown-Quelltextes in das gewünschte Dokumenten-Format erfolgt durch das Kommandozeilen-Tool pandoc
. Dabei stehen eine ganze Reihe unterschiedlicher Ziel-Formate zur Wahl: erwähnt seien hier nur Open/LibreOffice ODT, MS Word DOCX, LaTeX, DocBook, HTML, PDF, EPUB, EPUB3, ConTeXt und MediaWiki.
Das endgültige Aussehen der Dokumente lässt sich dadurch beeinflussen, dass man eigene CSS-Dateien, Vorlagen- oder Referenz-Dokumente einbindet. Ansonsten erhält man schlichte Dokumente mit den jeweils vor-eingestellten Stilen. Beim Bau eigener CSS-Stile sind einem versierten Anwender so gut wie keine Grenzen gesetzt, bei der Erstellung eigener Vorlagen und Referenzen gibt es ebenfalls erstaunlich viele Möglichkeiten.
Der Workshop gliedert sich in mehrere Teile:
- Einrichten der Erstell-Umgebung: Installation der neuesten Version von
pandoc
aus den entsprechenden Quellen - Kurz-Vorstellung der
Markdown
-Syntax - Kurz-Vorstellung von
pandoc
- Besprechung des verwendeten
Makefile
- Erstellung eigener Dokumente in mehreren Formaten aus demselben Markdown-Quellcode
Die Workshop-Teilnehmer erhalten Zugriff auf ein Zip-Archiv mit folgendem Inhalt:
- Die in diesen Workshop verwendeten Vortrags-Präsentationen.
- Zwei (oder mehr) Papers, welche der Autor über das Pandoc + Markdown-Duo geschrieben hat.
- Eine Reihe von Markdown-Dateien, die als Ausgangspunkt der Beispiel-Dokumente dienten.
- Ein
Makefile
(funktionierend unter Mac OS X oder Linux) zum Generieren der fertigen Beispiel-Dokumente. - Die für die unterschiedlichen Dokumenten-Stile der Beispiele verwendeten CSS- und Referenz-Dateien.
- Sonstige interessanten Dateien.