Как использовать pandoc для преобразования файлов в командной строке Linux

Вы можете использовать pandoc в Linux для преобразования между более чем 40 форматами файлов. Вы также можете использовать его для создания простой системы «документы как код», написав в Markdown, сохранив в git и опубликовав в любом из поддерживаемых форматов.

Преобразование документов и преобразование документов в код

Если у вас есть документ в любом из pandoc’s множество поддерживаемых форматов файлов, преобразовать его в любой из остальных очень просто. Это удобный инструмент!

Но настоящая мощь pandoc становится очевидной, когда вы используете его как основу простой системы «документы как код». Предпосылка docs-as-code состоит в том, чтобы принять некоторые методы и принципы разработки программного обеспечения и применить их при написании документации, особенно для проектов разработки программного обеспечения. Однако вы можете применить его для разработки любой документации.

Разработчики программного обеспечения используют свой любимый редактор или интегрированная среда разработки (IDE) писать свои программы. Код, который они вводят, сохраняется в текстовых файлах. Они содержат исходный код для программы.

Они используют система контроля версий, или VCS (Git является наиболее популярным), чтобы фиксировать изменения в исходном коде по мере его разработки и улучшения. Это означает, что у программиста есть полная история всех версий файлов исходного кода. Он или она может быстро получить доступ к любой предыдущей версии файла. Git хранит файлы в репозитории. На компьютере каждого разработчика есть локальный репозиторий и центральный общий удаленный репозиторий, который часто размещается в облаке.

Когда они будут готовы создать рабочую версию программы, они используют компилятор для чтения исходного кода и создания двоичного исполняемого файла.

Написав свои документы на легком текстовом языке разметки, вы можете использовать VCS для управления версиями вашего письма. Когда вы будете готовы распространить или опубликовать документ, вы можете использовать pandoc для создания любого количества различных версий вашей документации, включая веб-версию (HTML), текстовый или наборный (LibreOffice, Microsoft Word, TeX), переносимый формат документа (PDF), электронная книга (ePub), и так далее.

Все это можно сделать из одного набора облегченных текстовых файлов с контролем версий.

Установка pandoc

Чтобы установить pandoc в Ubuntu, используйте эту команду:

sudo apt-get install pandoc

sudo apt-get install pandoc в окне терминала.

В Fedora вам понадобится следующая команда:

sudo dnf install pandoc

sudo dnf установить pandoc в окне терминала.

На Manjaro вам нужно ввести:

sudo pacman -Syu pandoc

sudo pacman -Сю pandoc в окне терминала.

Вы можете проверить, какую версию вы установили, используя параметр –version:

pandoc --version

pandoc --version в окне терминала.

Использование pandoc без файлов

Если вы используете pandoc без параметров командной строки, он также принимает вводимые данные. Вы просто нажимаете Ctrl + D, чтобы указать, что вы закончили печатать. pandoc ожидает, что вы введете формат Markdown, и генерирует вывод HTML.

  Как играть в The Witcher 3: Wild Hunt в Linux

Давайте посмотрим на пример:

pandoc

pandoc в окне терминала.

Мы набрали несколько строк Markdown и собираемся нажать Ctrl + D.

Образцы строк уценки, введенные в pandoc в окне терминала.

Как только мы это сделаем, pandoc сгенерирует эквивалентный вывод HTML.

HTML, созданный pandoc в окне терминала.

Однако, чтобы делать что-нибудь полезное с pandoc, нам действительно нужно использовать файлы.

Основы Markdown

Markdown — это облегченный язык разметки, в котором определенным символам придается особое значение. Вы можете использовать текстовый редактор для создания файла Markdown.

Markdown легко читается, так как нет визуально громоздких тегов, отвлекающих от текста. Форматирование в документах Markdown похоже на форматирование, которое оно представляет. Ниже приведены некоторые основы:

Чтобы выделить текст курсивом, заключите его в звездочки. * Это будет подчеркнуто *
Чтобы выделить текст жирным шрифтом, используйте две звездочки. ** Это будет выделено жирным шрифтом **
Заголовки представлены знаком числа / решетки (#). Текст отделяется от хеша пробелом. Используйте один хэш для заголовка верхнего уровня, два — для второго уровня и т. Д.
Чтобы создать маркированный список, начинайте каждую строку списка со звездочки и вставляйте пробел перед текстом.
Чтобы создать нумерованный список, начинайте каждую строку с цифры, за которой следует точка, а затем вставляйте пробел перед текстом.
Чтобы создать гиперссылку, заключите название сайта в квадратные скобки ([]), а URL-адрес в скобках [()] вот так: [Link to How to Geek](https://www.howtogeek.com/).
Чтобы вставить изображение, введите восклицательный знак непосредственно перед скобками (![]). Введите любой альтернативный текст для изображения в скобках. Затем заключите путь к изображению в круглые скобки. [()“]. Вот пример:![The Geek](HTG.png).

Мы рассмотрим больше примеров всего этого в следующем разделе.

Преобразование файлов

Преобразование файлов выполняется просто. pandoc обычно может определить, с какими форматами файлов вы работаете, по их именам. Здесь мы собираемся сгенерировать HTML-файл из файла Markdown. Параметр -o (output) сообщает pandoc имя файла, который мы хотим создать:

pandoc -o sample.html sample.md

pandoc -o sample.html sample.md в окне терминала.

Наш пример файла Markdown, sample.md, содержит короткий раздел Markdown, показанный на изображении ниже.

Текст разметки в файле sample.md в окне редактора gedit.

Создается файл с именем sample.html. Когда мы дважды щелкаем файл, наш браузер по умолчанию откроет его.

HTML-рендеринг файла разметки sample.md в окне браузера.

Теперь давайте сгенерируем Формат открытого документа текстовый документ, который мы можем открыть в LibreOffice Writer:

pandoc -o sample.odt sample.md

pandoc -o sample.odt sample.md в окне терминала.

Файл ODT имеет то же содержимое, что и файл HTML.

Документ ODT, созданный с использованием уценки и открытый в LibreOffice Writer.

Аккуратный штрих — альтернативный текст для изображения также используется для автоматического создания подписи к рисунку.

Подпись к рисунку, созданная автоматически в LibreOffice Writer.

Указание форматов файлов

Параметры -f (от) и -t (до) используются, чтобы указать pandoc, какие форматы файлов вы хотите преобразовать из и в. Это может быть полезно, если вы работаете с форматом файла, который имеет расширение файла с другими родственными форматами. Например, TeX, и Латекс оба используют расширение «.tex».

  Как управлять программами запуска в Ubuntu Linux

Мы также используем параметр -s (автономный), чтобы pandoc сгенерировал всю преамбулу LaTeX, необходимую для того, чтобы документ был полным, самодостаточным и правильно сформированным документом LaTeX. Без опции -s (автономный) вывод все равно был бы правильно сформированным LaTeX, который можно было бы вставить в другой документ LaTeX, он не мог бы правильно анализироваться как отдельный документ LaTeX.

Набираем следующее:

pandoc -f markdown -t latex -s -o sample.tex sample.md

pandoc -f markdown -t latex -s -o sample.tex sample.md в окне терминала.

Если вы откроете файл «sample.tex» в текстовом редакторе, вы увидите сгенерированный LaTeX. Если у вас есть редактор LaTeX, вы можете открыть файл TEX, чтобы предварительно увидеть, как интерпретируются команды набора LaTeX. Уменьшение окна до размера изображения ниже сделало дисплей тесным, но на самом деле все было нормально.

Файл LaTeX, открытый в Texmaker, показывает предварительный просмотр страницы набора.

Мы использовали редактор LaTeX под названием Texmaker. Если вы хотите установить его в Ubuntu, введите следующее:

sudo apt-get install texmaker

В Fedora это команда:

sudo dnf install texmaker

В Манджаро используйте:

sudo pacman -Syu texmaker

Преобразование файлов с помощью шаблонов

Вы, наверное, начинаете понимать гибкость, которую предоставляет pandoc. Вы можете написать один раз и опубликовать практически в любом формате. Это великий подвиг, но документы действительно выглядят немного ванильными.

С помощью шаблонов вы можете указать, какие стили использует pandoc при создании документов. Например, вы можете указать pandoc использовать стили, определенные в Каскадные таблицы стилей (CSS) файл с параметром –css.

Мы создали небольшой файл CSS, содержащий текст ниже. Он изменяет интервал выше и ниже уровня заголовка на один стиль. Он также изменяет цвет текста на белый, а цвет фона на оттенок синего:

h1 {
  color: #FFFFFF;
  background-color: #3C33FF;
  margin-top: 0px;
  margin-bottom: 1px;
}

Полная команда приведена ниже — обратите внимание, что мы также использовали автономную опцию (-ы):

pandoc -o sample.html -s --css sample.css sample.md

pandoc использует единый стиль из нашего минималистичного файла CSS и применяет его к заголовку первого уровня.

HTML-код, отображаемый из уценки со стилем CSS, примененным к заголовку первого уровня в окне браузера.

Другой вариант тонкой настройки, доступный при работе с файлами HTML, — это включение разметки HTML в ваш файл Markdown. Он будет передан в сгенерированный файл HTML как стандартная разметка HTML.

Однако этот метод следует использовать, когда вы создаете только вывод HTML. Если вы работаете с несколькими форматами файлов, pandoc проигнорирует разметку HTML для файлов, отличных от HTML, и будет передан им как текст.

Мы также можем указать, какие стили используются при создании файлов ODT. Откройте пустой документ LibreOffice Writer и настройте стили заголовков и шрифтов в соответствии со своими потребностями. В нашем примере мы также добавили верхний и нижний колонтитулы. Сохраните документ как «odt-template.odt».

  Как создать и установить ключи SSH из оболочки Linux

Теперь мы можем использовать это как шаблон с параметром –reference-doc:

pandoc -o sample.odt --reference-doc=odt-template.odt sample.md

pandoc -o sample.odt --reference-doc = odt-template.odt sample.md в окне терминала.

Сравните это с предыдущим примером ODT. В этом документе используется другой шрифт, цветные заголовки, а также верхние и нижние колонтитулы. Однако он был создан из того же файла Markdown «sample.md».

Файл ODT, отображаемый из уценки с документом LibreOffice, действующим как таблица стилей, в окне LibreOffice Writer.

Шаблоны справочных документов могут быть использованы для обозначения различных этапов создания документа. Например, у вас могут быть шаблоны с водяными знаками «Черновик» или «Для проверки». Шаблон без водяного знака будет использоваться для окончательного документа.

Создание PDF-файлов

По умолчанию pandoc использует механизм LaTeX PDF для создания файлов PDF. Самый простой способ убедиться, что у вас есть соответствующие зависимости LaTeX, — это установить редактор LaTeX, например Texmaker.

Однако это довольно большая установка — и Tex, и LaTeX довольно большие. Если место на вашем жестком диске ограничено или вы знаете, что никогда не будете использовать TeX или LaTeX, вы можете предпочесть создать файл ODT. Затем вы можете просто открыть его в LibreOffice Writer и сохранить как PDF-файл.

Документы как код

Использование Markdown в качестве языка письма дает несколько преимуществ, в том числе следующие:

Работа с простыми текстовыми файлами выполняется быстро: они загружаются быстрее, чем файлы текстового процессора аналогичного размера, и, как правило, быстрее перемещаются по документу. Многие редакторы, включая gedit, Vim и Emacs, используют подсветку синтаксиса с текстом Markdown.
У вас будет временная шкала всех версий ваших документов: если вы храните документацию в VCS, таком как Git, вы можете легко увидеть различия между любыми двумя версиями одного и того же файла. Однако это действительно работает только тогда, когда файлы представляют собой обычный текст, поскольку VCS ожидает, что именно с этим будет работать.
VCS может записывать, кто и когда вносил какие-либо изменения: это особенно полезно, если вы часто сотрудничаете с другими над крупными проектами. Он также предоставляет центральное хранилище для самих документов. Многие облачные сервисы Git, такие как GitHub, GitLab, и BitBucket, имеют бесплатные уровни в своих моделях ценообразования.
Вы можете создавать свои документы в нескольких форматах: с помощью всего лишь пары простых сценариев оболочки вы можете извлекать стили из CSS и справочных документов. Если вы храните свои документы в репозитории VCS, который интегрируется с Непрерывная интеграция и непрерывное развертывание (CI / CD), они могут создаваться автоматически при создании программного обеспечения.

Последние мысли

Есть еще много вариантов и функций внутри пандок чем то, что мы здесь рассмотрели. Процессы преобразования для большинства типов файлов можно настроить и настроить. Чтобы узнать больше, ознакомьтесь с отличными примерами на официальном (и очень подробном) веб-страница pandoc.