在这个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 |在渲染代码块之前。
答案 0 :(得分:23)
使用“parsed-literal”指令。
.. parsed-literal::
./home/user/somecommand-|version|
来源:https://groups.google.com/forum/?fromgroups=#!topic/sphinx-dev/ABzaUiCfO_8:
答案 1 :(得分:0)
找到了一个更好的解决方案(在我看来),该解决方案可以在: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}
正确生成如下:
testing/replacement/replaced
请注意,如果使用它替换:samp:
指令中的参数,则必须使用双括号{
。
:samp:`func({{TEST}})`.