Разберите и напишите RST с помощью Docutils - PullRequest
1 голос
/ 07 мая 2020

Существуют ли какие-либо средства записи, которые будут выводить reStructuredText? Я думал, что "нулевой" писатель может быть для этой цели, но он не производит никакого вывода.

Мой вариант использования - анализировать существующий файл RST, изменять дерево документов в Python (например, для автоматического обновления директив), а затем выводить дерево обратно в RST.

HTML можно вывести, как показано ниже. Для вывода RST мне нужно написать собственный Writer, чтобы сделать это?

    import docutils.core
    import docutils.parsers.rst
    from docutils.writers import null
    import docutils.writers.html5_polyglot

    txt = """
    Title
    =====

    .. meta::
       :description: The reStructuredText plaintext markup language
       :keywords: plaintext, markup language

    """

    output = docutils.core.publish_string(
                source=txt,
                parser=docutils.parsers.rst.Parser(),
                #writer_name="null", # docutils_xml
                #writer= docutils.writers.null.Writer()
                writer=docutils.writers.html5_polyglot.Writer()
                )

    print(output)

1 Ответ

0 голосов
/ 12 мая 2020

Неутешительный ответ, но тем временем я прибег к использованию регулярного выражения - как в этом gist

Он добавляет ссылку на имя директивы индекса для всех файлов в папке:

Ввод:

.. index::
    pair: CLASS; BACKGROUNDCOLOR

Выход:

.. index::
    pair: CLASS; BACKGROUNDCOLOR
    :name: mapfile-class-background

Вариант использования был для этого запроса на вытягивание: https://github.com/mapserver/docs/pull/327

...