Pandoc - это библиотека Haskell для преобразования из одного формата разметки в другой, а также инструмент командной строки, использующий эту библиотеку.
Pandoc
Pandoc может конвертировать между многочисленными форматами разметки и обработки текстов, включая, но не ограничиваясь ими, различные варианты Markdown, HTML, LaTeX и Word docx.Pandoc также может создавать PDF-файлы.
Расширенная версия Markdown в Pandoc включает синтаксис для таблиц, списков определений, блоков метаданных, сносок, цитат, математики и многого другого. См. ниже в разделе Pandoc's Markdown.
Pandoc имеет модульную конструкцию: он состоит из набора читателей, которые анализируют текст в заданном формате и создают собственное представление документа (абстрактное синтаксическое дерево или AST), и набора писателей, которые преобразуют это собственное представление в целевой формат. Таким образом, добавление входного или выходного формата требует только добавления читателя или писателя. Пользователи также могут запускать пользовательские фильтры pandoc для изменения промежуточного AST.
Поскольку промежуточное представление документа в pandoc менее выразительно, чем многие форматы, между которыми он конвертирует, не стоит ожидать идеального преобразования каждого формата в любой другой. Pandoc пытается сохранить структурные элементы документа, но не детали форматирования, такие как размер полей. А некоторые элементы документа, например, сложные таблицы, могут не вписаться в простую модель документа pandoc. Хотя преобразования из pandoc's Markdown во все форматы стремятся к совершенству, можно ожидать, что преобразования из форматов, более выразительных, чем pandoc's Markdown, будут с потерями.
Установка pandoc в CentOS
Скачиваем последний релиз Pandoc в формате tar.gz (https://github.com/jgm/pandoc/releases)(на момент написания данной статьи pandoc 3.1)
1 | wget https://github.com/jgm/pandoc/releases/download/3.1/pandoc-3.1-linux-amd64.tar.gz |
Распаковываем скачанный архив, командой ниже
1 | tar -xvf pandoc-3.1-linux-amd64.tar.gz |
Далее создаем симлинк
1 | ln -s /root/pandoc-3.1/bin/pandoc /usr/bin/pandoc |
Так же нам потребуется пакет xelatex (в пакете: texlive-xetex)
На этом установка завершена.
Примеры использования
Если входные файлы не указаны, входные данные считываются из stdin. По умолчанию вывод идет на stdout. Для вывода в файл используйте параметр -o:
1 | pandoc -o output.html input.txt |
По умолчанию pandoc создает фрагмент документа. Чтобы создать отдельный документ (например, правильный HTML-файл, включающий <head> и <body>), используйте флаг -s или --standalone:
1 | pandoc -s -o output.html input.txt |
Если задано несколько входных файлов, pandoc объединит их все (с пустыми строками между ними) перед разбором. (Используйте --file-scope для разбора файлов по отдельности).
1 | pandoc -f epub --pdf-engine=xelatex 1.epub -o 1.pdf |
1 | pandoc 1.epub -o 1.docx |