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

Я получил следующее вconf.py:

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

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

<code>:base_url:/my_app/api/application/
</code>

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

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

 ideasman4213 июн. 2015 г., 15:40
возможный дубликатSubstitutions inside links in reST / Sphinx
 Matt Culbreth06 апр. 2012 г., 03:58
Итак, на данный момент мы сделали что-то очень грязное. У нас есть скрипт, который просто выполняет поиск -exec sed над сгенерированными документами, изменяя соответствующие URL-адреса. Так что работает, но ...

Ответы на вопрос(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/
Решение Вопроса

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

В вашем conf.py:

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

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

My config value is |my_conf_val|!

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

My config value is 42!

 Matt Culbreth06 апр. 2012 г., 12:35
Я буду продолжать его взламывать. Спасибо за ответ. Он более общий, чем у меня, так что вы получите голос.
 06 апр. 2012 г., 12:33
Я только что попробовал, но он не работает в блоках кода. Может быть, это ошибка в Docutils, так как sphinx полагается на подстановку документов в этом документе (и я думаю, что ссылки на).
 23 июн. 2016 г., 20:22
%s вероятно, будет лучшим примером, поскольку он носит более общий характер и соответствует заданному вопросу.
 23 июн. 2016 г., 21:03
Не стесняйтесь редактировать ответ
 Matt Culbreth06 апр. 2012 г., 12:21
Хорошо, спасибо, у этого есть возможности. Одна проблема, которую я заметил с extlinks, заключается в том, что я не могу использовать ее в середине блока кода. Затем он просто выводит & quot;: api_url: & quot; вместо замены. Было быrst_epilog справиться с этим лучше?

Ваш ответ на вопрос