Подсветка кода Python в стиле idleclassic для html-файлов

Описание

При публикации учебных примеров по программированию в Интернет целесообразно делать подсветку кода. Это улучшает восприятие текста, делает его красивее. Стандартный вариант подсветки кода для Python - это библиотека Pygments. Она по умолчанию присутствует в дистрибутиве Anaconda 2, так что устанавливать ее не требуется.

Для подсветки кода Python пакет Pygments предлагает на выбор целый набор цветовых схем - стилей. К сожалению, среди них нет самой привычной схемы - принятой в стандартном редакторе Idle. Поэтому ее нужно устанавливать отдельно.

Установка стиля idleclassic

Для начала придется установить свободную систему управления версиями Git, созданную в свое время Линусом Торвальдсом для работы над ядром Linux. Это неизбежно, потому что пакет pygments-style-idleclassic лежит на Github.com и закачивать его нужно через Git. Проверить корректность установки Git можно, набрав в командной строке Windows команду:

$ git

В окне командной строки должна появиться справка о командах git. Теперь можно приступать к установке стиля idleclassic. Клонируем репозиторий стиля в новый каталог pygments-style-idleclassic на вашем компьютере:

$ git clone git://github.com/zankophi/pygments-style-idleclassic.git

Переходим в этот каталог, набирая в командной строке команду:

$ cd pygments-style-idleclassic

Наконец, устанавливаем стиль idleclassic с помощью команды:

$ python setup.py install

Для нее могут потребоваться права администратора. Если система не видит интерпретатор python, нужно прописать каталог, в котором находится файл python.exe (например, C:\ProgramData\Anaconda2\), в системной переменной среды path.

Пример

Если нужно подсветить только одну строчку кода, можно воспользоваться шаблоном:

from pygments import highlight
from pygments.lexers import PythonLexer
from pygments.formatters import HtmlFormatter

code ="from Tkinter import *"
print highlight(code,PythonLexer(),HtmlFormatter(noclasses=True,style='idleclassic',cssstyles='border: 1px solid grey;padding: 3px'))

В переменную code записывается код Python, который нужно подсветить. В результате выполнения приведенного выше сценария в окне командной строки интерпретатора Python появится код html, который можно вставить в вашу интернет-страничку:

Если требуется "раскрасить" целую программу или значительный ее фрагмент, нужно записать ее в файл, скажем x.py, и выполнить в командной строке Windows команду:

$ pygmentize -f html -O style=idleclassic -P cssstyles="border: 1px solid grey;padding: 3px" -P noclasses=True -o x.html x.py

В итоге в файле x.html будет записан "разноцветный" код Python (в формате html), который можно сразу вставлять в ваш html-файл.

Примечания

Опция cssstyles в обоих примерах отвечает за отрисовку обрамляющей рамки серого цвета толщиной 1 пиксель и устанавливает величину зазора между рамкой и текстом внутри ее (3px). Именно так оформлена вставка кода Python в настоящем тексте.

Разумеется, приведенные выше рецепты будут работать не только для стиля idleclassic, но и для любого другого стиля, встроенного в Pygments. Отдельно устанавливать их не нужно. В дистрибутиве Anaconda 2 все заработает "с колес".


Python для инженеров и исследователей

Автор: Ф.С.Занько

Лицензия Creative Commons
Это произведение доступно по лицензии Creative Commons «Attribution-ShareAlike» («Атрибуция — На тех же условиях») 4.0 Всемирная.

О замеченных ошибках, неточностях, опечатках просьба сообщать по электронному адресу:
russianlutheran@gmail.com