I'm making a framework in which I let developers describe their package using reStructuredText. I want to parse that reStructuredText into HTML so I can show it in a GUI.
I'm familiar with the excellent Sphinx, but I've never otherwise parsed reStructuredText. I imagined something like a function that takes a string of reStructuredText, and possibly several additional arguments, and returns a string of HTML.
So I looked into Docutils, which is responsible for parsing reStructuredText. I couldn't understand at all how to find this function. Documentation on the web is spotty. Many of the functions in the docutils.parsers.rst
module seemed to be geared toward filenames. I don't have filenames! I'm just handling strings.
I tried creating a Parser
and a Document
and using the parse
method, but I just get an error about a missing .tab_width
setting.
Does anyone know how to parse reStructuredText into HTML?
Try something like this:
>>> from docutils.core import publish_string
>>> publish_string("*anurag*", writer_name='html')
publish_string
accepts a strings and outputs a string or you can use publish_parts to get specific parts of html document e.g.
>>> from docutils.core import publish_parts
>>> print publish_parts("*anurag*", writer_name='html')['html_body']
<p><em>anurag</em></p>