So verwenden Sie pandoc zum Konvertieren von Dateien in der Linux-Befehlszeile

Veröffentlicht: 2022-01-29
Ein Terminalfenster, das auf einem Linux-Laptop mit einem Desktopdesign im Ubuntu-Stil ausgeführt wird.
Fatmawati Achmad Zaenuri/Shutterstock

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.

Anzeige

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.

Anzeige

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 

Anzeige

Unsere Beispiel-Markdown-Datei, sample.md, enthält den kurzen Abschnitt von Markdown, der im Bild unten gezeigt wird.

Markdown-Text in der Datei sample.md in einem Gedit-Editorfenster.

Eine Datei namens sample.html wird erstellt. Wenn wir auf die Datei doppelklicken, wird sie von unserem Standardbrowser geöffnet.

HTML-Rendering der markdown-Datei sample.md in einem Browserfenster.

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.

Ein ODT-Dokument, das aus Markdown gerendert und in LibreOffice Writer geöffnet wurde.

Eine nette Geste ist, dass der alternative Text für das Bild auch verwendet wird, um automatisch eine Bildunterschrift zu generieren.

Eine automatisch generierte Abbildungsbeschriftung in LibreOffice Writer.

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 

Anzeige

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.

Eine in Texmaker geöffnete LaTeX-Datei, die eine Vorschau der Satzseite zeigt.

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
Anzeige

pandoc verwendet den einzelnen Stil aus unserer minimalistischen CSS-Datei und wendet ihn auf den Header der ersten Ebene an.

Aus Markdown gerenderter HTML-Code mit einem auf die Überschrift der ersten Ebene angewendeten CSS-Stil in einem Browserfenster

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.

Eine aus Markdown gerenderte ODT-Datei mit einem LibreOffice-Dokument, das als Stylesheet fungiert, in einem LibreOffice Writer-Fenster.

Anzeige

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 und Emacs , 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.

RELATED: Beste Linux-Laptops für Entwickler und Enthusiasten