How can I get rst2html.py to include the CSS for syntax highlighting?

て烟熏妆下的殇ゞ 提交于 2019-12-19 07:02:23

问题


When I run rst2html.py against my ReStructured Text source, with its code-block directive, it adds all the spans and classes to the bits of code in the HTML, but the CSS to actually colorize those spans is absent. Is it possible to get RST to add a CSS link or embed the CSS in the HTML file?


回答1:


As of Docutils 0.9 you could use the code directive. From the example on this page:

.. code:: python

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

Alternatively, you can use Pygments for syntax highlighting. See Using Pygments in ReST documents and this SO answer.

Finally, you could also use the code in this or this blogpost.

Update As discussed in the comments, to get the style file used by Pygments use the command

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

which will generate the Pygments CSS style file style.css.




回答2:


In docutils 0.9 and 0.10 it doesn't mattter whether you use code, code-block or sourcecode. All directives are considered code role.

This command will generate css that can embedded into html by rst2html.py.

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

This command will generate the html:

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

By default, rst2html.py outputs spans with class names like comment, number, integer, and operator. If you have a docutils.conf either in the same directory as the source, or /etc, or in ~/.docutils with

[parsers]
[restructuredtext parser]
syntax_highlight=short

... then the class names will be c, m, mi, and o which matches syntax.css generated by pygmentize.

See syntax-highlight in docutils documentation



来源:https://stackoverflow.com/questions/9807604/how-can-i-get-rst2html-py-to-include-the-css-for-syntax-highlighting

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!