Asciidoc ist eine einfache Aufzeichungssprache die leicht lesbar ist.
Mit AsciiDoc können umfangreiche Dokumenten geschrieben und in verschiedene Formate konvertiert werden.
Dieser PDF-Dokument / HTML-Seite wurde in dieses Format geschrieben und soll ein einfache Beispiel für den Umgang sein.
Der Quellcode sieht so aus:
PDF oder HTML aus einer Textdatei erzeugen
==========================================
:doctype: article
:lang: de
:encoding: UTF-8
AsciiDoc
--------
Asciidoc ist eine einfache Aufzeichungssprache die
leicht lesbar ist.
Mit AsciiDoc können umfangreiche Dokumenten
geschrieben und in verschiedene Formate
konvertiert werden.
Dieser PDF-Dokument / HTML-Seite wurde in dieses
Format geschrieben
und soll ein einfache Beispiel für den Umgang sein.
Der Quellcode sieht so aus:
---------
PDF oder HTML aus einer Textdatei erzeugen
==========================================
...
----------
Die Konvertierung erfolg aus der Kommandozeile mit:
$ asciidoc -f html5 <datei.txt>
-f html besagt, dass eine HTML 5 Datei erzeugt werden soll. datei.txt ist der Name der Text Datei, erzeug wird datei.html.
oder
$ asciidoc -f html5 -o <ausgabe.html> <datei.txt>
$ asciidoc -b html5 -a stylesheet=`pwd`/datei.css index.html
$ asciidoc -b slidy2 <datei.txt>
Vorraussetzung hierfür ist, dass dblatex installiert ist.
$ a2x -f pdf --dblatex-opts "-P latex.output.revhistory=0"<datei.txt>
a2x gehöhrt zur Paket asciidoc und sollte zur Umsetzung in PDF verwendet werden. Je nach Dokument kann es jedoch schief gehen!
$ a2x -f pdf --fop index.txt
Alternativ könner wkhtmltopdf oder weasyprint verwendet werden.
$ wkhtmltopdf <datei.html> <datei.pdf> $ weasyprint -f pdf <datei.html> <datei.pdf> $ pandoc --latex-engine=xelatex -f html -V geometry:margin=2cm -V papersize:a4paper <datei.html> -o <datei.pdf>
Mit Themen kann das Aussehen der erzeugten HTML Seiten an den eigene Bedürfnisse angepasst werden.
Hierzu muss lediglich eine passende css Datei geschrieben werden und als Theme hinzugefügt werden.
$ asciidoc -theme list /etc/asciidoc/themes/volnitsky /etc/asciidoc/themes/flask $ asciidoc --theme install compact.css.zip $ asciidoc --theme list /etc/asciidoc/themes/volnitsky /etc/asciidoc/themes/flask /home/user/.asciidoc/themes/compact
Ebenso können auch Backends installiert und verwendet werden.
@media print { @page { size: A4 portrait; margin: 20mm; @bottom-left { content: 'PDF oder HTML aus einer Textdatei erzeugen'; font-size: 12pt; font-family: 'Liberation Mono'; vertical-align:top; } @bottom-right { content: "Seite " counter(page) " von " counter(pages); font-size: 12pt; font-family: 'Liberation Mono'; vertical-align:top; } } }
Pandoc kann ähnliche Arbeiten wie AsciiDoc verrichten, es stehen aber mehr Ausgabeformate zur Verfügung.
Die markdown Aufzeichnungssprache ist aber ein wenig anders,
Die HTML Dateien beinhaltet nur der Inhaltsteil, Kopfdaten CSS müssen eingebaut werden oder ein minimale Header Option -s.
Damit ist es leichter die Ausgabe entsprchend seine Wünsche zu getallten zumal der erzeugten Code einfacher ist als derjenigen von AsciiDoc.
$ pandoc -t html5 -o <datei.html> <datei.txt> $ pandoc -t html5 -V lang:de,title:"PDF oder HTML aus einer Textdatei erzeugen" -o <datei.html> -s <datei.txt>
CSS kann auch vorgegeben werden:
$ pandoc -t html5 -o <datei.html> -H <css.html> <datei.txt>
Bemerkung die Datei <css.html> beinhaltet entweder eine Referenz beinhalten
<link rel="stylesheet" type="text/css" href="datei.css">
oder
<style type="text/css">
body {
font-family: Sans;
}
...
</style>
$ pandoc -o <datei.pdf> -s <datei.txt>
Die Ausgabe sieht nicht so gut aus, weitere Paremeter müssen angegeben werden.
$ pandoc -V geometry:margin=2cm -V papersize:a4paper -o <datei.pdf> <datei.pa>
gibt schon eine bessere Ausgabe.
Titel ===== Untertitel ---------- Unter Untertitel ~~~~~~~~~~~~~~~~
\newpage <div class="newpage">
wkhtmlpdf und weasyprint bieten den Vorteil, dass die PDF Ausgabe leichter beeinflusst wird. Wenn die Werkzeuge das Einbinden von Bilder unterstützen, werden diese auch richtin in der PDF-Ausgabe angezeigt.
(@page { @top-left {…)
werden nicht beachtet!
(@page { @top-left {…)
werden verarbeitet.