Как установить пользовательское значение конфигурации для sphinx в conf.py?(например, для sphinx.ext.ifconfig) - PullRequest
5 голосов
/ 14 марта 2012

[Я разбил исходный вопрос на два после дополнительных испытаний и исследований]

Я определил свое собственное значение конфигурации в conf.py и написал минимальное расширение, чтобы сделать его видимым из первых файлов.

в conf.py:

sys.path.insert(0, os.path.abspath('.'))
extensions = ['sphinx.ext.ifconfig', 'myExt']
testlevel = 2

в локальном myExt.py:

def setup(app):
   app.add_config_value('testlevel', '', True)

Это прекрасно работает;test.rst включает в себя:

.. ifconfig:: testlevel == 2

    Hurray, it seems to work

Согласно документу sphinx.ext.ifconfig , представляется возможным вызвать * app.add_config_value * непосредственно из conf.py .Может кто-нибудь сказать мне, как это сделать?

1 Ответ

2 голосов
/ 21 марта 2012

Здесь следует отметить две вещи:

  1. Во-первых, файл conf.py - это просто файл python. Единственное, что в этом особенного, это то, что Sphinx специально ищет его и импортирует. В этом файле вы можете делать все, что можете в обычном файле python.
  2. Во-вторых, conf.py файл сам может быть расширением . Другими словами, он может иметь функцию setup, которая должна работать так же, как и в расширении. Поэтому, если вы копируете содержимое вашего расширения (myExt.py) в файл conf.py, оно должно просто работать (тм).
...