Я использую reStructuredText для своего блога/веб-сайта и хочу добавить глобальный включаемый файл. У меня есть доступ, и я рад изменить файл настроек, который я использую для создания вывода html, я просто не могу понять синтаксис:
- добавление включаемого файла по умолчанию в парсер
- определение директив/встроенных ролей и т. д. в python с помощью docutils в python
Я пытался читать исходный код и документацию, и мне было немного трудно следовать. Я надеюсь, что просто пропустил что-то сверхочевидное, но я хотел бы сделать что-то вроде следующего (первая часть — это то, что уже есть — вы можете увидеть остальная часть файла в исходном коде плагина jekyll-rst (ссылки прямо на него)
import sys
from docutils.core import publish_parts
from optparse import OptionParser
from docutils.frontend import OptionParser as DocutilsOptionParser
from docutils.parsers.rst import Parser
# sets up a writer that is then called to parse rst pages repeatedly
def transform(writer=None, part=None):
p = OptionParser(add_help_option=False)
# Collect all the command line options
docutils_parser = DocutilsOptionParser(components=(writer, Parser()))
for group in docutils_parser.option_groups:
p.add_option_group(group.title, None).add_options(group.option_list)
p.add_option('--part', default=part)
opts, args = p.parse_args()
# ... more settings, etc
# then I just tell the parser/writer to process specified file X.rst every time
# (or alternately a python file defining more roles...but nicer if in rst)
Есть ли простой способ сделать это? Было бы здорово определить файл defaults.rst
и каждый раз загружать его.
РЕДАКТИРОВАТЬ: вот несколько примеров того, что я хотел бы иметь возможность включать глобально (пользовательские директивы тоже были бы хороши, но я бы, вероятно, написал их в коде)
.. role:: raw-html(raw)
:format: html
.. |common-substitution| replace:: apples and orange
.. |another common substitution| replace:: etc