Я использую reStructuredText для своего блога/веб-сайта, и я хочу добавить глобальный файл include. У меня есть доступ к, и я рад, чтобы изменить файл настроек я использую для создания выходного HTML, я просто не могу понять синтаксис как:Global включить в реструктурированный текст
- добавления по умолчанию включает файл анализатор
- определения директивы/инлайн-роли, и т.д. в Python с Docutils в питоне
Я попытался чтением исходного кода и документации и просто найти его немного трудно следовать. Я надеюсь, что я просто пропустил что-то супер-очевидное, но я хотел бы сделать что-то вроде следующего (первой части только то, что уже есть - вы можете увидеть rest of the file in the jekyll-rst plugin source (links right to it)
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
и каждый раз загружать его.
EDIT: Вот несколько примеров того, что я хотел бы включить в глобальном масштабе (обычай директивы тоже были бы хороши, но я, вероятно, напишу их в коде)
.. role:: raw-html(raw)
:format: html
.. |common-substitution| replace:: apples and orange
.. |another common substitution| replace:: etc
Я действительно понимаю, как работают файлы, но я бы предпочел не добавлять явную строку include в начало каждого документа, который я создаю на сайте. Я также хотел бы иметь возможность переключаться между различными файлами include, не изменяя каждый отдельный документ, который я создал. Для меня это эквивалент установки флагов и параметров при настройке парсера/записи. –
Другая вещь, которую я рассматривал, - это определить пользовательскую роль в Python, а затем зарегистрировать ее. –
В этом случае см. Мое редактирование. – Chris