В этом примере reST, предназначенном для визуализации с помощью Sphinx, | yaco_url | не заменяется, потому что он находится в блоке кода:
.. |yaco_url| replace:: http://yaco.es/
You can use wget to download it:
.. code-block:: console
$ wget |yaco_url|package.tar.gz
Интересно, есть ли способ принудительно заменить | yaco_url | перед рендерингом блока кода.
Нашел лучшее решение (на мой взгляд), которое можно использовать в других директивах, таких как :samp:
, и может быть полезно для будущих читателей.
config.py:
def ultimateReplace(app, docname, source):
result = source[0]
for key in app.config.ultimate_replacements:
result = result.replace(key, app.config.ultimate_replacements[key])
source[0] = result
ultimate_replacements = {
"{TEST}" : "replaced"
}
def setup(app):
app.add_config_value('ultimate_replacements', {}, True)
app.connect('source-read', ultimateReplace)
И этот вид разметки:
.. http:get:: testing/replacement/{TEST}
Правильно генерирует как: для замены аргумента в директиве :samp:
требуется двойная скобка {
.
:samp:`func({{TEST}})`.