Я пытаюсь использовать пакет docutils для преобразования ReST в HTML. В этом ответе кратко используются удобные функции docutils publish_*
для достижения этого за один шаг. Документы ReST, которые я хочу преобразовать, имеют несколько разделов, которые я хочу разделить в результирующем HTML. Таким образом, я хочу разбить этот процесс:
- Разберите ReST в дереве узлов.
- Разделите узлы соответствующим образом.
- Преобразуйте узлы, которые я хочу, в HTML.
Это третий шаг, с которым я борюсь. Вот как я делаю шаги один и два:
from docutils import utils
from docutils.frontend import OptionParser
from docutils.parsers.rst import Parser
# preamble
rst = '*NB:* just an example.' # will actually have many sections
path = 'some.url.com'
settings = OptionParser(components=(Parser,)).get_default_values()
# step 1
document = utils.new_document(path, settings)
Parser().parse(rst, document)
# step 2
for node in document:
do_something_with(node)
# step 3: Help!
for node in filtered(document):
print(convert_to_html(node))
Я нашел класс HTMLTranslator
и класс Publisher
. Они кажутся актуальными, но я изо всех сил пытаюсь найти хорошую документацию. Как мне реализовать функцию convert_to_html
?