将reStructuredText解析为HTML
我正在制作一个框架,让开发者可以用reStructuredText来描述他们的包。我想把这些reStructuredText解析成HTML,这样就可以在图形界面中展示了。
我对很棒的Sphinx有些了解,但之前从来没有解析过reStructuredText。我想象中应该有一个函数,它接收一段reStructuredText字符串,可能还有几个额外的参数,然后返回一段HTML字符串。
于是我查了一下Docutils,它负责解析reStructuredText。不过我完全搞不懂怎么找到这个函数。网上的文档也不太完整。docutils.parsers.rst
模块里的很多函数似乎都是针对文件名的,但我没有文件名!我只是处理字符串而已。
我尝试创建一个Parser
和一个Document
,然后使用parse
方法,但我却遇到了一个关于缺少.tab_width
设置的错误。
有没有人知道怎么把reStructuredText解析成HTML呢?
1 个回答
67
试试这样做:
>>> from docutils.core import publish_string
>>> publish_string("*anurag*", writer_name='html')
publish_string
接受一个字符串并输出一个字符串,或者你可以使用 publish_parts 来获取 HTML 文档的特定部分,比如:
>>> from docutils.core import publish_parts
>>> print publish_parts("*anurag*", writer_name='html')['html_body']
<p><em>anurag</em></p>