如何让rst2html.py包含用于语法高亮的CSS?

时间:2012-03-21 15:23:53

标签: restructuredtext

当我对我的ReStructured Text源运行rst2html.py时,使用它的代码块指令,它将所有的跨度和类添加到HTML中的代码位,但是实际着色这些跨度的CSS是不存在的。是否可以让RST添加CSS链接或将CSS嵌入HTML文件中?

2 个答案:

答案 0 :(得分:7)

从Docutils 0.9开始,您可以使用code directive。从本页的示例:

.. code:: python

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

或者,您可以使用Pygments进行语法突出显示。请参阅Using Pygments in ReST documentsthis SO回答。

最后,您还可以使用thisthis博文中的代码。

更新如评论中所述,要获取Pygments使用的样式文件,请使用命令

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

将生成Pygments CSS样式文件style.css

答案 1 :(得分:5)

在docutils 0.9和0.10中,无论您使用代码,代码块还是源代码,都不会产生影响。所有指令都被视为code role

此命令将生成可以通过rst2html.py嵌入到html中的css。

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

此命令将生成html:

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

默认情况下,rst2html.py会输出包含commentnumberintegeroperator等类名称的范围。如果docutils.conf与来源位于同一目录中,或/etc~/.docutils位于

[parsers]
[restructuredtext parser]
syntax_highlight=short

...然后,类名称将cmmiosyntax.css生成的pygmentize匹配

See syntax-highlight in docutils documentation