Как я могу получить rst2html.py включить CSS для подсветки синтаксиса?

когда я бегу rst2html.py против моего реструктурированного источника текста, с его директивой code-block, он добавляет все пяди и классы к битам кода в HTML, но CSS для фактической окраски этих пядей отсутствует. Можно ли сначала добавить ссылку CSS или встроить CSS в HTML-файл?

2 ответов


начиная с Docutils 0.9 вы можете использовать code директива. Из примера на этой странице:

.. code:: python

 def my_function():
     "just a test"
     print 8/2

кроме того, вы можете использовать Pygments для подсветки синтаксиса. См.использование пигментов в документах ReST и этой так ответь.

наконец, вы также можете использовать код этой или этой blogpost.

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

pygmentize -S default -f html -a .highlight > style.css

который будет генерировать файл стиля CSS Pygments style.css.


в docutils 0.9 и 0.10 не имеет значения, используете ли вы код, блок кода или исходный код. Все директивы считаются роль код.

эта команда создаст css, который может быть встроен в html rst2html.py.

pygmentize -S default -f html -a .code > syntax.css

эта команда будет генерировать html:

rst2html.py --stylesheet=syntax.css in.txt > out.html

по умолчанию rst2html.py выводит пяди с именами классов, такими как comment, number, integer и operator. Если у вас есть docutils.conf в том же каталог в качестве источника, или /etc или ~/.docutils С

[parsers]
[restructuredtext parser]
syntax_highlight=short

... тогда имена классов будут c, m, mi и o что соответствует syntax.css создается с помощью pygmentize.

см. синтаксис-выделение в документации docutils