Как вывести значение конфигурации в файл Sphinx.rst?

У меня есть следующее в conf.py:

def setup(app):
    app.add_config_value('base_url','http://localhost:2000', True)

Как мне получить это в мои .rst файлы? Я написал это:

:base_url:/my_app/api/application/

Но он только печатает :base_url: вместо фактического URL.

Как получить фактическое значение конфигурации, которое будет выбрано?

Ответы

Ответ 1

Для подстановки ссылок хорошо подходит extlinks, для включения произвольных значений конфигурации, как было задано в вашем вопросе, вы можете использовать rst_epilog для подстановок (или rst_prolog для текста, который должен быть добавлен поверх ваших файлов .rst):

В вашем conf.py:

my_config_value = 42
rst_epilog = '.. |my_conf_val| replace:: %d' % my_config_value

В вашем .rst источнике:

Мое значение конфигурации | my_conf_val |!

В вашем выводе:

Мое значение конфигурации 42!

Ответ 2

Ах, ха!

Взгляните на модуль sphinx.ext.extlinks на http://sphinx.pocoo.org/ext/extlinks.html

Итак, у меня есть код в моей conf.py, который делает это:

extlinks = {'api_url' : (settings.BASE_URL + '%s', settings.BASE_URL)}

И в моем .rst файле у меня есть это:

:api_url:`/myapp/api/application/`

который создает красиво отформатированную ссылку как таковую:

http://localhost:8000/myapp/api/application/