Разбор reStructuredText в HTML - PullRequest
55 голосов
/ 11 июля 2011

Я делаю каркас, в котором я позволяю разработчикам описывать свой пакет с помощью reStructuredText. Я хочу разобрать этот reStructuredText в HTML, чтобы я мог показать его в графическом интерфейсе.

Я знаком с отличным Сфинксом, но я никогда не анализировал reStructuredText. Я представил что-то вроде функции, которая принимает строку reStructuredText и, возможно, несколько дополнительных аргументов и возвращает строку HTML.

Итак, я посмотрел на Docutils, который отвечает за разбор reStructuredText. Я вообще не мог понять, как найти эту функцию. Документация в сети пятнистая. Многие функции в модуле docutils.parsers.rst, похоже, были ориентированы на имена файлов. У меня нет имен файлов! Я просто работаю со строками.

Я попытался создать Parser и Document и использовать метод parse, но я просто получаю сообщение об ошибке в пропущенном параметре .tab_width.

Кто-нибудь знает, как разобрать reStructuredText в HTML?

1 Ответ

63 голосов
/ 11 июля 2011

Попробуйте что-то вроде этого:

>>> 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>
...