Как я могу получить rst2html.py для включения CSS для подсветки синтаксиса? - PullRequest
6 голосов
/ 21 марта 2012

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

Ответы [ 2 ]

7 голосов
/ 21 марта 2012

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

.. code:: python

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

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

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

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

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

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

5 голосов
/ 13 июня 2013

В документах 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.

См. Подсветку синтаксиса в документации к документам

...