Top.Mail.Ru
Загрузка

Как проверить и конвертировать Markdown в консоли

Linux до сих пор ассоциируется для многих пользователей работой в консоли, где каждая программа запускается в терминале замысловатой командой. В этом есть свои огромные плюсы, в первую очередь это быстрота исполнения, даже не смотря на то, что рабочий компьютер может находиться за тысячи километров. Опытные программисты до сих пишут свои программы в консольных редакторах. Соответственно для проверки и преобразования текстовых файлов, написанных в консоли, нужны соответствующие инструменты. С парочкой таких инструментов мы сегодня и познакомимся.

Markdown lint tool

Использование Markdown для написания текстовой документации стало стандартом для многих проектов, и его активно используют многие разработчики. Его легко выучить и понять, и он не сильно влияет на читабельность исходного документа, даже если у вас не установлен инструмент для просмотра файла Markdown. Многие сервисы могут обработать Markdown и превратить его в красиво оформленную веб-страницу или структурированную документацию. К примеру, на GitHub он используется по умолчанию. Но есть и серьёзная проблема с использованием Markdown. Не существует единого стандарта, определяющего общую стилистику и правила написания файлов Markdown. Это приводит к тому, что каждый проект придумывает и использует свои правила для Markdown. Даже GitHub поддерживает два стандарта — kramdown и свой собственный GitHub Flavored Markdown (GFM).

Несмотря на всё это разнообразие в стилях написания файлов Markdown, существует очень мало инструментов, которые могут проверить валидность Markdown в соответствии с вашими собственными прихотями и требованиями. Markdownlint — один из немногих таких инструментов, и он на данный момент наиболее адаптирован для различных стандартов Markdown. Это консольная утилита принимает файл Markdown в качестве аргумента и сообщает о любых проблемах с синтаксисом, используемым в файле. На сайте разработчика об этом инструменте лаконично написано: «Инструмент для проверки файлов разметки и выявления проблем со стилем».

При выявлении ошибки утилита сообщает номер строки где она произошла, код ошибки и текстовое описание, например, «Inline HTML» или «Списки должны быть окружены пустыми строками». Существует 47 таких правил, от правильного инкрементирования заголовков до завершения файла одним символом новой строки, и они полностью охватывают большинство проблем, с которыми вы можете столкнуться. Правила для стилей markdownlint можно добавить вручную, чтобы полностью удовлетворить потребности в стилистике Markdown. Синтаксис для таких правил также прост, например, правило «’MD013′, :line_length => 500» может быть добавлено для проверки строк длиной более 500 символов. Инструмент markdownlint является отличным решением, если вы работаете с Markdown.

Устанавливается markdownlint через систему управления пакетами для языка программирования Руби — RubyGems, и в самом простейшем случае достаточно ввести в консоли команду:

gem install mdl

Чтобы markdownlint проверил файл Markdown, достаточно запустите её с именем файла в качестве параметра:

mdl README.md

Markdownlint также может проверить все файлы Markdown внутри каталога (и вложенных каталогов):

mdl docs/

Для проверки файла можно использовать стандартный вывод:

cat foo.md | mdl

Pandoc

Часто работа с текстовыми файлами требует преобразования одного формата документа в другой. Для этого существует универсальный конвертер документов — Pandoc, который разрабатывается с 2006 года. Разработчики Pandoc сравнивают своё детище с швейцарским ножом. И действительно, Pandoc на данный момент может обработать практический любой тип текстовых файлов, среди которых упомянутый выше Markdown, HTML, LaTeX и DOCX. Pandoc может конвертировать файлы в PDF, преобразовывать таблицы, списки определений, правильно преобразовать цитаты и сноски, и даже язык разметки на основе XML для представления математических символов и формул в документах WWW — MathML.

Особенностью pandoc являются не столько входные и выходные форматы, которые он поддерживает, сколько то, как тонко его можно настроить и затем управлять процессом преобразования. Существует множество способов настроить pandoc под свои нужды, включая систему шаблонов и мощную систему для написания фильтров. Вы можете легко написать свои собственные фильтры, используя JSON или Lua.

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

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

Работает pandoc в командной строке, и в самом простом случае программе надо дать входной файл и указать во что его конвертировать:

pandoc somefile.txt -o example.html

CliFM

И раз уж речь зашла о работе в консоли, то стоит напомнить, что эта работа связана с перемещением между директориями, копированием, перемещением и удалением файлов и каталогов. Использование файлового менеджера является естественным выбором для такой работы. Я не ошибусь, если скажу, что все пользователи linux знакомы с консольным файловым менеджером Midnight Commander, который разрабатывается с 1994 года. Но каким бы ни был популярным и известным Midnight Commander, всегда хочется попробовать что-то новое. На этот раз это будет консольный файловый менеджер CliFM.

Главная особенность CliFM заключается в том, что он не использует никакого графического пользовательского интерфейса (GUI), в нём не используется текстовый пользовательский интерфейс (TUI) и нет никаких меню. Только вы и мощная командная строка, ориентированная на управление файлами. В результате его интерфейс кажется гораздо более аутентичным и верным традиционным инструментам и философии Unix. Основное окно программы представляет собой нумерованный список каталогов и файлов в текущем местоположении. Выбор номера и нажатие клавиши «Enter» приведет либо к переходу внутрь каталога, либо к отрытию файла. Также с помощью клавиш «m», «c» или «r» можно переместить, скопировать или удалить пронумерованный файл или каталог соответственно. Несколько записей можно выбрать интерактивно или с помощью клавиши «s».

Установить текстовый файловый менеджер CliFM можно скачав готовый бинарный пакет, соответствующий вашему дистрибутиву с сайта OpenSUSE Build System. Там же, к каждому дистрибутиву имеется инструкция для подключения репозитория, чтобы установить пакет вручную.

svg

Что вы думаете?

Показать комментарии / Оставить комментарий

Комментировать

svg
Быстрая навигация
  • 01

    Как проверить и конвертировать Markdown в консоли