Pandoc unterstützt eine Vielzahl von Ausgabeformaten (“output formats”), darunter Dokumentformate, Präsentationsformate, HTML-Varianten, E-Book-Formate und viele mehr. Hier eine Übersicht der wichtigsten Formate:
Wichtige Pandoc-Ausgabeformate:
- Markdown (verschiedene Varianten, z.B. pandoc, GitHub, CommonMark)
- HTML (HTML5, HTML4)
- LaTeX / PDF (über LaTeX)
- Docx (Microsoft Word)
- ODT (OpenDocument Text, z.B. LibreOffice)
- EPUB (E-Books)
- reStructuredText
- RST
- AsciiDoc
- Rich Text Format (RTF)
- Textile
- MediaWiki
- Org-mode (Emacs)
- TeX (Plain TeX)
- JATS (für wissenschaftliche Publikationen)
- Man Page (groff man)
- u.v.m. (Pandoc-Dokumentation: Output formats)
Die beste Wahl als Ausgangsformat, um Informationsverluste zu vermeiden, ist das Pandoc-Markdown mit Pandoc-spezifischen Erweiterungen (markdown+...
).
- Pandoc-Markdown ist das interne Arbeitsformat von Pandoc. Es unterstützt die meisten Features (Formatierungen, Hyperlinks, Fußnoten, Tabellen, mathematische Formeln, Code-Block-Attribute, Metadaten, u.v.m.).
- Andere Formate (z.B. docx, odt, HTML) unterstützen möglicherweise nicht alle Pandoc-Features und können bei Konvertierung Details verlieren.
- Pandoc-Markdown mit aktivierten Extensions (
markdown+all_extensions
) ist die verlustärmste Variante, z.B.:pandoc -t markdown+all_extensions
- "Rundes Tripeln" (Konvertieren in verschiedene Formate und wieder zurück) funktioniert mit Markdown meist am besten.
- Wenn das Ziel spezielle Layouts, Makros oder Formatierungen eines bestimmten Zielsystems erfordert (z.B. komplexes LaTeX, Docx-Styles), kann das native Format dieses Systems besser geeignet sein – allerdings nur für genau dieses Ziel.
- Pandoc-Markdown mit allen Extensions ist meist das beste Ausgangsformat, um Informationen zu erhalten.
- Bei jedem Formatwechsel (besonders zwischen sehr unterschiedlichen Formaten) kann es trotzdem zu kleinen Verlusten kommen. Für maximale Kompatibilität immer im Pandoc-Markdown bleiben, solange möglich.
Tipp:
Wenn du Originaldokumente dauerhaft verlustfrei archivieren willst, speichere sie als Pandoc-Markdown (.md
) mit allen Extensions und Metadaten. Von dort kannst du in alle anderen Formate exportieren.
Referenz:
Die Formate reStructuredText (reST) und AsciiDoc sind beide mächtig und weit verbreitet, bieten aber jeweils andere Features und Schwerpunkte als Pandocs Markdown mit allen Extensions.
Pandoc erweitert Markdown um viele Features, die in den „Standard“-Formaten von reST und AsciiDoc nicht immer ein direktes Äquivalent haben. Beim Konvertieren kann es daher zu Informationsverlust kommen, insbesondere bei:
- Spezialformatierungen
- Erweiterten Metadaten
- Pandoc-spezifischen Features
Feature | Pandoc Markdown | reStructuredText | AsciiDoc | Hinweis |
---|---|---|---|---|
Fußnoten | Ja | Ja | Ja | Übertragung meist möglich |
Tabellen | Ja (erweitert, viele Typen) | Ja (Standard-Tabelle) | Ja (versch. Stile) | Komplexe Tabellen evtl. eingeschränkt |
Mathematische Formeln (LaTeX Math) | Ja | Eingeschränkt | Eingeschränkt | reST/AsciiDoc oft nur mit Erweiterungen |
Syntax-Highlighting für Code | Ja | Möglich | Möglich | Stil und Features können abweichen |
Direktives, Filter, Attributes ({} ) |
Ja (div. Extensions) | Ja (Admonitions, Roles) | Ja (Block-Attribute) | Oft nicht 1:1 übertragbar |
Metadaten-Header (YAML, TOML) | Ja | Nein (nur mit Sphinx, usw.) | Nein (teils Workarounds) | Meist verloren |
Pandoc-spezifische Link- und Bild-Optionen | Ja | Nein | Nein | Gehen meist verloren |
HTML- oder LaTeX-Umbrüche/Raw-Blocks | Ja (raw_attribute ) |
Ja (raw, aber anders) | Ja (raw, aber anders) | Syntax nicht 1:1, kann verloren gehen |
Markierungen (z.B. ==Highlight==) | Ja (mit Extension) | Nein | Nein | Geht verloren, da kein Pendant |
Unterstreichungen, Farben, Custom Styles | Ja (mit Extension) | Nein | Nein | Geht verloren |
Definition Lists, Task Lists | Ja (mit Extension) | Ja (Definition List) | Ja (beides) | Task Lists oft nicht in reST |
- Pandoc Markdown kann beliebige YAML/TOML-Metadaten enthalten – das gibt es in reST/AsciiDoc nicht.
- Markierungen (Highlight/Marked Text) kennt nur Pandoc Markdown (und evtl. HTML).
- Task Lists (
- [x]
) gibt es in AsciiDoc, aber nicht in reST. - Custom Attributes an vielen Elementen (z.B.
{.classname #id}
) gehen meist verloren.
- Pandoc-Markdown mit Extensions ist am ausdrucksstärksten und verlustärmsten.
- reStructuredText und AsciiDoc sind sehr leistungsfähig, aber jeweils unterschiedlich. Manche Pandoc-Features (z.B. Metadaten, Markierungen, manche Tabellenarten, spezielle Extensions) können beim Export verloren gehen oder müssen als „raw“ übernommen werden.
- Für maximale Zukunftssicherheit und Feature-Kompatibilität empfiehlt sich Pandoc-Markdown als Arbeitsformat.
Tipp:
Wenn du einen „verlustfreien“ Workflow willst, behalte die Originalquelle immer als Pandoc-Markdown und exportiere bei Bedarf in reST, AsciiDoc, HTML, PDF etc.
Referenzen:
- Pandoc User’s Guide: Extensions
- Pandoc: Supported formats & caveats
- Pandoc: Markdown vs. reST vs. AsciiDoc
Für markdown+all_extensions
(also Pandoc Markdown mit allen Extensions) gibt es keine einzige VS Code Extension, die wirklich alles nahtlos unterstützt. Aber du kannst eine sehr gute Umgebung mit einer Kombination aus Extensions erreichen:
- Markdown All in One
- Sehr gute Unterstützung für Standard-Markdown, Tabellen, TOC, Tastenkürzel, Formatierungen.
- Markdown Extended
- Bietet zusätzliche Syntax und arbeitet gut mit erweiterten Markdown-Features.
- Better Markdown
- Unterstützt zusätzliche Syntax-Elemente.
- Markdown All in One
- Bietet Autocompletion für Links, Referenzen, Bilder etc.
- IntelliSense for Markdown
- Ergänzt Autocompletion für Markdown-Elemente.
- VS Code eingebaut
- Mit
Ctrl+Shift+V
oder Klick auf „Vorschau öffnen“ kannst du Markdown standardmäßig als Vorschau sehen.
- Mit
- Markdown Preview Enhanced
- Sehr empfehlenswert! Unterstützt Diagramme, mathematische Formeln (LaTeX), Fußnoten, Custom-Container, YAML-Header, Code-Block-Attribute u.v.m. — also viele Pandoc-Extensions!
- Vorschau kann so konfiguriert werden, dass sie Pandoc verwendet (für maximale Kompatibilität).
- vscode-pandoc
- Ermöglicht direktes Konvertieren/Exportieren mit Pandoc aus VS Code heraus.
- Markdown All in One
- Markdown Preview Enhanced
- vscode-pandoc (optional, für Export)
Damit hast du:
- Syntax-Highlighting für fast alles, was Pandoc kann
- Vorschau mit Unterstützung für LaTeX, Diagramme, Fußnoten, Custom-Container usw.
- Autocompletion für Links, Bilder, Referenzen etc.
- (Optional) Direkten Export in andere Formate
- Nicht alle Pandoc-Extensions werden in der Vorschau perfekt unterstützt (z.B. spezielle YAML-Header, seltene Attribute, eigene Templates). Für die finale Ausgabe solltest du immer nochmal mit Pandoc selbst rendern.
- Die Extensions können individuell konfiguriert werden, z.B. YAML-Header, KaTeX/MathJax für Formeln, Diagramm-Unterstützung usw.
Empfohlen für Pandoc Markdown mit allen Extensions:
Damit bist du für Autocompletion, Syntax Highlighting und Preview im Pandoc-Style sehr gut ausgestattet!
Tipp:
Teste in der „Markdown Preview Enhanced“ die Option, Pandoc als Renderer zu verwenden ("markdown-preview-enhanced.usePandocParser": true
in den VS Code Einstellungen).
Gute und wichtige Frage!
- AsciiDoc:
Unterstützt Variablen und Platzhalter, z.B.:name: Wert
und dann{name}
im Text. - Pandoc Markdown:
Unterstützt keine Variablen/Platzhalter in dieser Form.
Pandoc-Markdown kennt keine eigene Syntax für Variablen wie{name}
.
Es gibt jedoch begrenzte Möglichkeiten, Variablen aus YAML-Metadaten im Template (beim Export, also nicht im Markdown selbst) zu verwenden. Im Fließtext selbst geht das nicht.
- AsciiDoc:
Unterstütztifdef::name[] ... endif::[]
direkt im Text, um Inhalte abhängig von einer Variablen ein-/auszublenden. - Pandoc Markdown:
Hat keine native Unterstützung für konditionale Blöcke im Text.
Mit Pandoc lassen sich beim Export mit Templates und Filtern Inhalte ggf. steuern, aber nicht direkt im Markdown-Dokument.
- AsciiDoc:
Unterstützt direkt das Einbinden von anderen Dateien. - Pandoc Markdown:
Unterstützt kein nativesinclude::
in der Markdown-Syntax.
Lösungen:- Vorverarbeitung/Skripte (z.B. mit
cat
,make
, Pandoc-Filter, Pandoc-Preprocessor) - Pandoc-Filter wie
pandoc-include
- Manuelles Einfügen
- Vorverarbeitung/Skripte (z.B. mit
Ja, auf diese Features müsstest du in Pandoc-Markdown verzichten, zumindest in der Form, wie AsciiDoc sie bietet.
- Variablen, Includes und Konditionen sind in Markdown (+ Pandoc) nicht nativ möglich.
- Workarounds: YAML-Metadaten, Pandoc-Filter, externe Tools oder Vorverarbeitung mit Skripten.
Für komplexe technische Dokumentation mit Variablen, Includes und Konditionen ist AsciiDoc weiterhin deutlich komfortabler und mächtiger als Markdown/Pandoc.
Feature | AsciiDoc | Pandoc Markdown | Workaround möglich? |
---|---|---|---|
Variablen ({name} ) |
Ja | Nein | Nur im Output-Template |
ifdef/ifndef | Ja | Nein | Mit Filtern, aber umständlich |
include:: | Ja | Nein | Mit Filtern/Vorverarbeitung |
Weiterführend:
Quelle: https://github.com/copilot/c/f659ef81-b3d0-4812-998f-0c246f647013