Pandoc - это утилита командной строки, которая может конвертировать файлы из одного формата разметки в другой.
Pandoc - это библиотека Haskell для преобразования из одного формата разметки в другой и инструмент командной строки, который использует эту библиотеку. Он может читать Markdown, CommonMark, PHP Markdown Extra, GitHub-Flavored Markdown, MultiMarkdown и (подмножества) Textile, reStructuredText, HTML, LaTeX, разметку MediaWiki, разметку TWiki, разметку TikiWiki, Creole 1.0, разметку Haddock, OPML, Emacs Org режим, DocBook, Muse, txt2tags, Vimwiki, EPUB, ODT и Word docx; и он может писать обычный текст, Markdown, CommonMark, PHP Markdown Extra, GitHub-Flavored Markdown, MultiMarkdown, reStructuredText, XHTML, HTML5, LaTeX (включая слайд-шоу на панели), ConTeXt, RTF, OPML, DocBook, OpenDocument, ODT, Word docx , GNU Texinfo, разметка MediaWiki, разметка DokuWiki, разметка ZimWiki, разметка Haddock, EPUB (v2 или v3), FictionBook2, Textile, groff man, groff ms, режим Emacs Org, AsciiDoc, InDesign ICML, TEI Simple, Muse и Slidy, Slideous , DZSlides, show.js или S5 слайд-шоу HTML. Он также может создавать PDF-выход в системах, где установлены LaTeX, ConTeXt, pdfroff, wkhtmltopdf, принц или weasyprint.
Расширенная версия Markdown от Pandoc включает синтаксис для сносок, таблиц, гибких упорядоченных списков, списков определений, блокированных блоков кода, надстрочных индексов и индексов, вычеркиванием, блоками метаданных, автоматическими оглавлениями, встроенной математикой LaTeX, цитатами и Markdown внутри блока HTML элементы. (Эти усовершенствования, описанные далее в разделе Markdown от Pandoc, могут быть отключены с использованием формата ввода или вывода markdown_strict.)
В отличие от большинства существующих инструментов для преобразования Markdown в HTML, которые используют регулярные выражения, Pandoc имеет модульный дизайн: он состоит из набора считывателей, которые анализируют текст в заданном формате и создают собственное представление документа, а набор писателей, которые преобразуют это собственное представление в целевой формат. Таким образом, добавление формата ввода или вывода требует только добавления считывателя или записи.
Поскольку промежуточное представление документа Pandoc менее выразительно, чем многие из преобразованных между ним форматов, нельзя ожидать идеальных преобразований между каждым форматом и всеми другими. Pandoc пытается сохранить структурные элементы документа, но не форматирует детали, такие как размер маржи. И некоторые элементы документа, такие как сложные таблицы, могут не соответствовать простой модели документа Pandoc. В то время как конверсии из Markdown от Pandoc во все форматы стремятся быть идеальными, можно ожидать, что конверсии из форматов, более выразительных, чем Markdown от Pandoc, будут потеряны.
Если входной файл не указан, вход считывается из stdin. В противном случае входные файлы объединяются (с пустой строкой между ними) и используются в качестве входных данных. Вывод идет по умолчанию на stdout (хотя вывод на терминал отключен для выходных форматов odt, docx, epub2 и epub3, если только он не принудительно используется -o -). Для вывода в файл используйте опцию -o: