Как мне создать глобальную роль / роли в Sphinx?
Это продолжение зачеркивания ReST " ReST", но в сфинксе, а не в контексте ReST. Мой вопрос заключается в том, есть ли в sphinx центральное место, куда следует помещать директиву "роль", или эта директива действительно должна повторяться в каждом первом файле в документации по сфинксу.
Более подробно:
Легко определить пользовательские стили CSS для встроенного текста (см. ReST Strikethrough в качестве примера), используя директиву role:
.. role:: custom
:class: custom
This is an :custom:`inline text`.
который переводит в HTML-рендеринг
.. This is an <span class="custom">inline text</span>. ..
Кроме того, пользовательская таблица стилей может быть легко добавлена в sphinx (см. http://www.tinkerer.me/doc/theming.html), где можно добавить селектор класса CSS для управления отображением "пользовательского" текста (цвет, зачеркивание, размер шрифта...)
Меня беспокоит то, что в моих экспериментах мне приходилось повторять директиву ролей в каждом файле ReST, в котором использовалась пользовательская роль. Есть ли "центральное" место, где я могу определить это один раз для всего сайта?
2 ответа
Кажется, что rst_prolog, который установлен в файле conf.py, является центральным местом, которое я искал. Rst_prolog - это "строка reStructuredText, которая будет включена в начало каждого исходного файла, который читается". В моем случае я просто добавил следующее в conf.py:
rst_prolog = """
.. role:: test2
"""
Также обратите внимание, что для моей цели директива роли без класса attibute работает просто отлично.
Очевидно, как указал Крис, rst_prolog, который выполняет множество задач, может быть достигнуто путем включения файла global.rst. [Однако могут быть проблемы с его относительным путем. Может быть, лучше использовать rst_prolog = open('global.rst', 'r'). Read() --untested]
Из примера документирования вашего проекта с использованием sphinx вы можете использовать include
заменить global.rst
файл, который содержит все ваши директивы роли, в другие ваши файлы. С этого сайта:
Синтаксис:
.. include:: myfile.rst
Будет ли "встроен" данный файл (
myfile.rst
). Общее соглашение, которое я использую, - это создание глобального.rst файла с именемglobal.rst
и включите это в верхней части каждой страницы. Очень полезно для ссылок на общие изображения или ссылки на общие файлы и т. Д.