So verwenden Sie pandoc zum Konvertieren von Dateien in der Linux-Befehlszeile
Veröffentlicht: 2022-01-29 Sie können pandoc
unter Linux verwenden, um zwischen mehr als 40 Dateiformaten zu konvertieren. Sie können es auch verwenden, um ein einfaches Docs-as-Code-System zu erstellen, indem Sie in Markdown schreiben, in git
speichern und in einem der unterstützten Formate veröffentlichen.
Dokumentenkonvertierung und Docs-as-Code
Wenn Sie ein Dokument in einem der vielen unterstützten Dateiformate von pandoc's
, ist die Konvertierung in eines der anderen ein Kinderspiel. Das ist ein praktisches Werkzeug!
Aber die wirkliche Leistungsfähigkeit von pandoc
wird deutlich, wenn Sie es als Basis eines einfachen Docs-as-Code-Systems verwenden. Die Prämisse von Docs-as-Code besteht darin, einige der Techniken und Prinzipien der Softwareentwicklung zu übernehmen und sie auf das Schreiben von Dokumentation anzuwenden, insbesondere für Softwareentwicklungsprojekte. Sie können es jedoch auf die Entwicklung jeder Art von Dokumentation anwenden.
Softwareentwickler verwenden ihren bevorzugten Editor oder ihre bevorzugte integrierte Entwicklungsumgebung (IDE), um ihre Programme zu schreiben. Der eingegebene Code wird in Textdateien gespeichert. Diese enthalten den Quellcode für das Programm.
Sie verwenden ein Versionskontrollsystem oder VCS (Git ist das beliebteste), um Änderungen am Quellcode zu erfassen, während er entwickelt und verbessert wird. Das bedeutet, dass der Programmierer über eine vollständige Historie aller Versionen der Quellcodedateien verfügt. Er oder sie kann schnell auf jede frühere Version einer Datei zugreifen. Git speichert Dateien in einem Repository. Es gibt ein lokales Repository auf dem Computer jedes Entwicklers und ein zentrales, gemeinsam genutztes Remote-Repository, das häufig in der Cloud gehostet wird.
Wenn sie bereit sind, eine funktionierende Version des Programms zu produzieren, verwenden sie einen Compiler, um den Quellcode zu lesen und eine ausführbare Binärdatei zu generieren.
Indem Sie Ihre Dokumente in einer einfachen, textbasierten Auszeichnungssprache schreiben, können Sie ein VCS zur Versionskontrolle Ihres Schreibens verwenden. Wenn Sie bereit sind, ein Dokument zu verteilen oder zu veröffentlichen, können Sie pandoc
verwenden, um so viele verschiedene Versionen Ihrer Dokumentation zu generieren, wie Sie benötigen, einschließlich webbasierter (HTML), Textverarbeitung oder Schriftsatz (LibreOffice, Microsoft Word, TeX). , Portable Document Format (PDF), E-Book (ePub) und so weiter.
Sie können all dies mit einem Satz von versionierten, schlanken Textdateien tun.
pandoc installieren
Verwenden Sie diesen Befehl, um pandoc
unter Ubuntu zu installieren:
sudo apt-get install pandoc
Auf Fedora ist der Befehl, den Sie benötigen, der folgende:
sudo dnf install pandoc
Auf Manjaro müssen Sie Folgendes eingeben:
sudo pacman-Syu pandoc
Sie können überprüfen, welche Version Sie installiert haben, indem Sie die Option --version
verwenden:
pandoc --version
Pandoc ohne Dateien verwenden
Wenn Sie pandoc
ohne Befehlszeilenoptionen verwenden, akzeptiert es auch getippte Eingaben. Drücken Sie einfach Strg+D, um anzuzeigen, dass Sie mit der Eingabe fertig sind. pandoc
erwartet, dass Sie das Markdown-Format eingeben, und generiert eine HTML-Ausgabe.
Schauen wir uns ein Beispiel an:
Pandoc
Wir haben ein paar Zeilen Markdown getippt und drücken gleich Strg+D.
Sobald wir das tun, generiert pandoc
die entsprechende HTML-Ausgabe.
Um mit pandoc
etwas Nützliches zu tun, müssen wir jedoch wirklich Dateien verwenden.
Markdown-Grundlagen
Markdown ist eine leichte Auszeichnungssprache, und bestimmten Zeichen wird eine besondere Bedeutung gegeben. Sie können einen einfachen Texteditor verwenden, um eine Markdown-Datei zu erstellen.
Markdown ist gut lesbar, da es keine optisch störenden Tags gibt, die vom Text ablenken. Die Formatierung in Markdown-Dokumenten ähnelt der Formatierung, die sie darstellt. Nachfolgend einige Grundlagen:
- Um Text mit Kursivschrift hervorzuheben, umschließen Sie ihn mit Sternchen.
*This will be emphasized*
- Um Text fett darzustellen, verwenden Sie zwei Sternchen.
**This will be in bold**
- Überschriften werden durch das Nummernzeichen/Hash-Zeichen (
#
) dargestellt. Text wird durch ein Leerzeichen vom Hash getrennt. Verwenden Sie einen Hash für eine Überschrift der obersten Ebene, zwei für eine Überschrift der zweiten Ebene und so weiter. - Um eine Liste mit Aufzählungszeichen zu erstellen, beginnen Sie jede Zeile der Liste mit einem Sternchen und fügen Sie vor dem Text ein Leerzeichen ein.
- Um eine nummerierte Liste zu erstellen, beginnen Sie jede Zeile mit einer Ziffer, gefolgt von einem Punkt, und fügen Sie dann ein Leerzeichen vor dem Text ein.
- Um einen Hyperlink zu erstellen, setzen Sie den Namen der Website in eckige Klammern (
[]
) und die URL in Klammern [()
] wie folgt:[Link to How to Geek](https://www.howtogeek.com/)
. - Um ein Bild einzufügen, geben Sie unmittelbar vor den Klammern (
![]
) ein Ausrufezeichen ein. Geben Sie einen beliebigen Alternativtext für das Bild in die Klammern ein. Schließen Sie dann den Pfad zum Bild in Klammern ein [()
“]. Hier ist ein Beispiel:![The Geek](HTG.png)
.
Wir werden im nächsten Abschnitt weitere Beispiele für all dies behandeln.
VERWANDT: Was ist Markdown und wie wird es verwendet?
Konvertieren von Dateien
Dateikonvertierungen sind unkompliziert. pandoc
kann normalerweise anhand der Dateinamen erkennen, mit welchen Dateiformaten Sie arbeiten. Hier generieren wir eine HTML-Datei aus einer Markdown-Datei. Die Option -o
(Ausgabe) teilt pandoc
den Namen der Datei mit, die wir erstellen möchten:
pandoc -o beispiel.html beispiel.md
Unsere Beispiel-Markdown-Datei, sample.md, enthält den kurzen Abschnitt von Markdown, der im Bild unten gezeigt wird.
Eine Datei namens sample.html wird erstellt. Wenn wir auf die Datei doppelklicken, wird sie von unserem Standardbrowser geöffnet.
Lassen Sie uns nun ein Textdokument im Open Document Format generieren, das wir in LibreOffice Writer öffnen können:
pandoc -o probe.odt probe.md
Die ODT-Datei hat denselben Inhalt wie die HTML-Datei.
Eine nette Geste ist, dass der alternative Text für das Bild auch verwendet wird, um automatisch eine Bildunterschrift zu generieren.
Dateiformate angeben
Die Optionen -f
(from) und -t
(to) werden verwendet, um pandoc
mitzuteilen, aus welchen Dateiformaten Sie konvertieren möchten und in welche Dateiformate Sie konvertieren möchten. Dies kann nützlich sein, wenn Sie mit einem Dateiformat arbeiten, das eine Dateierweiterung mit anderen verwandten Formaten teilt. Zum Beispiel verwenden TeX und LaTeX beide die Erweiterung „.tex“.
Wir verwenden auch die Option -s
(eigenständig), damit pandoc
die gesamte LaTeX-Präambel generiert, die erforderlich ist, damit ein Dokument ein vollständiges, eigenständiges und wohlgeformtes LaTeX-Dokument ist. Ohne die Option -s
(eigenständig) wäre die Ausgabe immer noch wohlgeformtes LaTeX, das in ein anderes LaTeX-Dokument eingefügt werden könnte, es würde nicht richtig als eigenständiges LaTeX-Dokument analysiert werden.
Wir geben Folgendes ein:
pandoc -f markdown -t latex -s -o sample.tex sample.md
Wenn Sie die Datei „sample.tex“ in einem Texteditor öffnen, sehen Sie das generierte LaTeX. Wenn Sie einen LaTeX-Editor haben, können Sie die TEX-Datei öffnen, um eine Vorschau zu sehen, wie die LaTeX-Satzbefehle interpretiert werden. Das Verkleinern des Fensters, um es an das Bild unten anzupassen, ließ die Anzeige eng erscheinen, aber in Wirklichkeit war es in Ordnung.
Wir haben einen LaTeX-Editor namens Texmaker verwendet. Wenn Sie es in Ubuntu installieren möchten, geben Sie Folgendes ein:
sudo apt-get installiere texmaker
Bei Fedora lautet der Befehl:
sudo dnf installiert texmaker
Verwenden Sie in Manjaro:
sudo pacman -Syu texmaker
Konvertieren von Dateien mit Vorlagen
Sie beginnen wahrscheinlich, die Flexibilität zu verstehen, die pandoc
bietet. Sie können einmal schreiben und in fast jedem Format veröffentlichen. Das ist eine großartige Leistung, aber die Dokumente sehen ein wenig vanillig aus.
Mit Vorlagen können Sie festlegen, welche Stile pandoc
beim Generieren von Dokumenten verwendet. Beispielsweise können Sie pandoc
mit der Option --css
anweisen, die in einer CSS-Datei (Cascading Style Sheets) definierten Stile zu verwenden.
Wir haben eine kleine CSS-Datei erstellt, die den folgenden Text enthält. Es ändert den Abstand über und unter der Ebenenüberschrift um einen Stil. Es ändert auch die Textfarbe in Weiß und die Hintergrundfarbe in einen Blauton:
h1 { Farbe: #FFFFFF; Hintergrundfarbe: #3C33FF; Rand oben: 0px; Rand unten: 1px; }
Der vollständige Befehl ist unten – beachten Sie, dass wir auch die eigenständige Option ( -s
) verwendet haben:
pandoc -o sample.html -s --css sample.css sample.md
pandoc
verwendet den einzelnen Stil aus unserer minimalistischen CSS-Datei und wendet ihn auf den Header der ersten Ebene an.
Eine weitere Feinabstimmungsoption, die Ihnen beim Arbeiten mit HTML-Dateien zur Verfügung steht, besteht darin, HTML-Markup in Ihre Markdown-Datei aufzunehmen. Dies wird als Standard-HTML-Markup an die generierte HTML-Datei weitergegeben.
Diese Technik sollte jedoch reserviert sein, wenn Sie nur HTML-Ausgaben generieren. Wenn Sie mit mehreren Dateiformaten arbeiten, ignoriert pandoc
das HTML-Markup für Nicht-HTML-Dateien und leitet es als Text an diese weiter.
Wir können auch angeben, welche Stile verwendet werden, wenn ODT-Dateien generiert werden. Öffnen Sie ein leeres LibreOffice Writer-Dokument und passen Sie die Überschrift und den Schriftstil an Ihre Bedürfnisse an. In unserem Beispiel haben wir auch eine Kopf- und Fußzeile hinzugefügt. Speichern Sie Ihr Dokument als „odt-template.odt“.
Dies können wir nun mit der Option --reference-doc
als Vorlage verwenden:
pandoc -o sample.odt --reference-doc=odt-template.odt sample.md
Vergleichen Sie dies mit dem ODT-Beispiel von früher. Dieses Dokument verwendet eine andere Schriftart, hat farbige Überschriften und enthält Kopf- und Fußzeilen. Es wurde jedoch aus genau derselben Markdown-Datei „sample.md“ generiert.
Referenzdokumentvorlagen können verwendet werden, um verschiedene Stadien der Erstellung eines Dokuments anzuzeigen. Beispielsweise haben Sie möglicherweise Vorlagen mit den Wasserzeichen „Entwurf“ oder „Zur Überprüfung“. Für ein fertiges Dokument würde eine Vorlage ohne Wasserzeichen verwendet werden.
PDFs generieren
Standardmäßig verwendet pandoc
die LaTeX-PDF-Engine, um PDF-Dateien zu generieren. Der einfachste Weg, um sicherzustellen, dass die entsprechenden LaTeX-Abhängigkeiten erfüllt sind, besteht darin, einen LaTeX-Editor wie Texmaker zu installieren.
Das ist allerdings eine ziemlich große Installation – Tex und LaTeX sind beide ziemlich umfangreich. Wenn Ihr Festplattenspeicher begrenzt ist oder Sie wissen, dass Sie niemals TeX oder LaTeX verwenden werden, ziehen Sie es vielleicht vor, eine ODT-Datei zu generieren. Dann können Sie es einfach in LibreOffice Writer öffnen und als PDF speichern.
Docs-as-Code
Die Verwendung von Markdown als Schreibsprache bietet mehrere Vorteile, darunter die folgenden:
- Das Arbeiten in reinen Textdateien ist schnell: Sie werden schneller geladen als ähnlich große Textverarbeitungsdateien und bewegen sich auch schneller durch das Dokument. Viele Editoren, einschließlich
gedit
,Vim
undEmacs
, verwenden Syntaxhervorhebung mit Markdown-Text. - Sie haben eine Zeitleiste aller Versionen Ihrer Dokumente: Wenn Sie Ihre Dokumentation in einem VCS wie Git speichern, können Sie die Unterschiede zwischen zwei beliebigen Versionen derselben Datei leicht erkennen. Dies funktioniert jedoch nur dann wirklich, wenn es sich bei den Dateien um Klartext handelt, da dies das ist, was ein VCS erwartet, damit zu arbeiten.
- Ein VCS kann aufzeichnen, wer wann Änderungen vorgenommen hat: Dies ist besonders hilfreich, wenn Sie häufig mit anderen an großen Projekten zusammenarbeiten. Es bietet auch ein zentrales Repository für die Dokumente selbst. Viele in der Cloud gehostete Git-Dienste wie GitHub, GitLab und BitBucket haben kostenlose Kontingente in ihren Preismodellen.
- Sie können Ihre Dokumente in mehreren Formaten generieren: Mit nur ein paar einfachen Shell-Skripten können Sie die Stile aus CSS- und Referenzdokumenten abrufen. Wenn Sie Ihre Dokumente in einem VCS-Repository speichern, das in Plattformen für Continuous Integration und Continuous Deployment (CI/CD) integriert ist, können sie automatisch generiert werden, wenn die Software erstellt wird.
VERWANDT: Was ist GitHub und wofür wird es verwendet?
Abschließende Gedanken
Es gibt viel mehr Optionen und Funktionen in pandoc als das, was wir hier behandelt haben. Die Konvertierungsprozesse für die meisten Dateitypen können optimiert und feinabgestimmt werden. Um mehr zu erfahren, sehen Sie sich die hervorragenden Beispiele auf der offiziellen (und äußerst detaillierten) Pandoc-Webseite an.
Linux-Befehle | ||
Dateien | tar · pv · cat · tac · chmod · grep · diff · sed · ar · man · pushd · popd · fsck · testdisk · seq · fd · pandoc · cd · $PATH · awk · join · jq · fold · uniq · journalctl · tail · stat · ls · fstab · echo · less · chgrp · chown · rev · look · strings · type · rename · zip · unzip · mount · umount · install · fdisk · mkfs · rm · rmdir · rsync · df · gpg · vi · nano · mkdir · du · ln · patch · konvertieren · rclone · shred · srm | |
Prozesse | alias · screen · top · nice · renice · progress · strace · systemd · tmux · chsh · history · at · batch · free · which · dmesg · chfn · usermod · ps · chroot · xargs · tty · pinky · lsof · vmstat · timeout · wall · yes · kill · sleep · sudo · su · time · groupadd · usermod · groups · lshw · shutdown · reboot · halt · poweroff · passwd · lscpu · crontab · date · bg · fg | |
Vernetzung | netstat · ping · traceroute · ip · ss · whois · fail2ban · bmon · dig · finger · nmap · ftp · curl · wget · who · whoami · w · iptables · ssh-keygen · ufw |
RELATED: Beste Linux-Laptops für Entwickler und Enthusiasten