Python 将自定义侧栏模板映射到任何名为“index.rst”的文档

Python 将自定义侧栏模板映射到任何名为“index.rst”的文档,python,python-sphinx,Python,Python Sphinx,假设我有以下项目结构: / index.rst 1/ index.rst a.rst 2/ index.rst b.rst 3/ index.rst c.rst 如何在Sphinx的conf.py中创建适用于所有名为index.rst的文件的规则?如果可能,请提供Sphinx支持文档,解释可与html_边栏一起使用的各种通配符 或者我必须明确指

假设我有以下项目结构:

/
    index.rst
    1/
        index.rst
        a.rst
    2/
        index.rst
        b.rst
        3/
            index.rst
            c.rst
如何在Sphinx的conf.py中创建适用于所有名为index.rst的文件的规则?如果可能,请提供Sphinx支持文档,解释可与html_边栏一起使用的各种通配符

或者我必须明确指定每个文件

html_sidebars = {'**': ['non-index-template.html'],
                 'index.rst': ['index-template.html'],
                 '1/index.rst': ['index-template.html'],
                 '2/index.rst': ['index-template.html'],
                 '3/index.rst': ['index-template.html']
}
切题是,有没有一种方法可以引用该字典中字典键的值?例如

html_sidebars = {'**': ['non-index-template.html'],
                 'index.rst': ['index-template.html'],
                 '1/index.rst': [this['index.rst']],
                 '2/index.rst': [this['index.rst']],
                 '3/index.rst': [this['index.rst']]
}

我也在谷歌集团发布了这个问题。下面是一个来自中国的答案

这可能会起作用,但请注意,它会发出警告:

html_sidebars = { 
    '**': ['non-index-template.html'], 
    '**/index': ['index-template.html'], 
    'index': ['index-template.html']
} 
Re:引用该词典中词典键的值:

html_sidebars = { 
    '**': ['non-index-template.html'], 
    'index.rst': ['index-template.html']
} 
html_sidebars['1/index.rst'] = html_sidebars['index.rst'] 
html_sidebars['2/index.rst'] = html_sidebars['index.rst'] 
html_sidebars['3/index.rst'] = html_sidebars['index.rst'] 
或者

从以下脚注:

关于可用的globbing语法的说明:您可以使用标准shell 构造*、?、[…]和[!…]以及这些 所有的都不匹配斜杠。双星**可用于匹配任何 字符序列,包括斜杠

因此,以下内容将完成我所追求的目标,让我知道是否有更简洁的可用语法:

html_sidebars = {'**[!i][!n][!d][!e][!x]': ['non-index-sidebar.html'],
                 '**index': ['index-sidebar.html'],
}
html_sidebars = {'**[!i][!n][!d][!e][!x]': ['non-index-sidebar.html'],
                 '**index': ['index-sidebar.html'],
}