Подсветка синтаксиса с помощью python-pygments

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

Есть такая замечательная программа Pygments.

В ubuntu ставим так:

$ sudo apt-get install python-pygments

Далее используем как обычную консольную программу:

$ pygmentize -O style=monokai -o output.rtf input.js

Здесь всё просто.

  • -O параметр передающий далее опции для лексического анализатора и для форматирования.
  • style= — задаем в каком стиле у нас будет подсветка. В мануале и справке для консоли — я не нашел как посмотреть доступные стили, однако поглядеть их всё же можно в исходниках на Bitbucket
  • -o путь к файлу куда будет выведен результат. Я указал RTF как пример. Судя по документации — можно сделать вывод в HTML разметке, но я не пробовал — врать не стану.
  • input.js — файл с исходным кодом который надо раскрасить.

Ну а дальше, можете с получившимся файлом поступать как вам хочется. Можно, кстати этот RTF вставить в презентацию в LibreOffice Impress — если вы готовите именно презентацию, а не документацию к коду.

Для этой же программы есть биндинг на PHP — для использования в своём PHP проекте. Найти можно по адресу https://github.com/capynet/PHPygments

Автор: Mirivlad

Скромный труженик консоли и окошек.

Комментарии: