Как я могу настроить выходные данные из pygments?
Вопрос
Если я запускаю исходный файл python через pygments, он выводит html-код, класс элементов которого принадлежит некоторому CSS-файлу, используемому pygments.Могут ли атрибуты стиля быть включены в выводимый HTML-код, чтобы мне не нужно было предоставлять файл CSS?
Решение
Если для атрибута noclasses установлено значение True , будут созданы только встроенные стили. Вот фрагмент кода, который отлично справляется со своей задачей:
formatter = HtmlFormatter(style=MyStyle)
formatter.noclasses = True
print highlight(content,PythonLexer(),formatter)
Другие советы
Pass full = True для конструктора HtmlFormatter.
@Ignacio:совсем наоборот:
from pygments import highlight
from pygments.lexers import PythonLexer
from pygments.formatters import HtmlFormatter
code = 'print "Hello World"'
print highlight(code, PythonLexer(), HtmlFormatter(noclasses=True))
[ исх.: http://pygments.org/docs/formatters/, смотрите HtmlFormatter ]
(В принципе, это то же самое, что и ответ Tempus, я просто подумал, что полный фрагмент кода может сэкономить несколько секунд ) )
PS.Те, кто думает, что первоначальный вопрос поставлен некорректно, могут представить, напримерзадача вставки выделенного кода в запись блога, размещенную сторонним сервисом.
Обычно ваш код - это только одна из многих вещей на веб-странице. Вы часто хотите, чтобы код выглядел иначе, чем другой контент. Как правило, вы хотите контролировать стиль кода как часть общего стиля страницы. CSS - ваш первый лучший выбор для этого.
Однако вы можете встроить стили в HTML, если это кажется лучше. Вот пример, который показывает тег <style>
в теге <head>
.