【问题标题】:Nested substitutions in sphinx狮身人面像中的嵌套替换
【发布时间】:2015-12-22 20:20:27
【问题描述】:

我正在Sphinx 中创建我的文档(我还在学习基础知识)。在我的项目中,有一些文件的名称很长,我在文档中多次引用它们,所以,为了让我的生活更轻松,我决定使用这样的替换:

.. |MyFile| replace:: a_very_very_long_name_for_a_file_v2.0.txt

然后我只需在任何我想引用该文件的地方输入|MyFile|。这工作得很好,但现在我想让版本部分可变,所以当我发布新版本时我不必更改所有别名(我相信我会忘记一些东西)。幸运的是,Sphinx 设置了变量 version,所以我尝试了:

.. |MyFile| replace:: a_very_very_long_name_for_a_file_v |version| .txt

但是嵌套替换被忽略了。我已经在谷歌上搜索了一个多小时,我很惊讶以前没有人问过这个问题。我见过一些关于 Parsed Literals 的东西,但我无法让它工作。根据其他别名制作别名应该很常见吧?我错过了什么吗?有没有更好的方法?

【问题讨论】:

    标签: python-sphinx substitution restructuredtext


    【解决方案1】:

    它对我有用。你有没有在 conf.py 中将version 设置为 2.0?

    替换定义:

    .. |MyFile| replace:: a_very_very_long_name_for_a_file_v\ |version|\ .txt
    

    使用|MyFile| 引用时的输出:

    a_very_very_long_name_for_a_file_v2.0.txt
    

    请注意,|version| 之前和之后的空格会被转义,以便将它们从输出中排除(请参阅http://docutils.sourceforge.net/docs/ref/rst/restructuredtext.html#escaping-mechanism)。

    【讨论】:

    • 是的,我做到了。但是非常感谢,因为现在我发现我在做一些愚蠢的事情:我有:.. |MyFile| replace:: **a_very_long_name_for_a_file_v\ |version|\ .txt**。 * 使整个事情不起作用,如果我删除它们就可以了。我快疯了,问题一直摆在我面前。那么,要完成这个问题,有没有办法在替换中使用粗体、斜体等?
    • 嵌套内联标记很难。它并不真正受支持,但有或多或少丑陋的解决方法。见stackoverflow.com/a/24123141/407651stackoverflow.com/a/30996300/407651
    猜你喜欢
    • 2012-02-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-11-28
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多