假设我有以下项目结构:
/
index.rst
1/
index.rst
a.rst
2/
index.rst
b.rst
3/
index.rst
c.rst
如何在Sphinx的conf.py
中创建html_sidebars规则,该规则适用于名为index.rst
的所有文件?如果可能,请提供支持的Sphinx文档,说明可以与html_sidebars
一起使用的各种通配符。
或者我必须明确指定每个文件......
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']
}
切线问题,有没有办法在该字典中引用字典键的值? E.g。
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']]
}
答案 0 :(得分:0)
我还在sphinx-users Google小组中发布了此问题。以下是Takayuki Shimizukawa的答案。
这可能会有效,但请注意它会发出警告:
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']
或者,
index_sidebars = ['index-template.html']
html_sidebars = {
'**': ['non-index-template.html'],
'index.rst': index_sidebars,
'1/index.rst': index_sidebars,
'2/index.rst': index_sidebars,
'3/index.rst': index_sidebars
}
答案 1 :(得分:0)
来自The build configuration file的脚注:
关于可用的globbing语法的注释:您可以使用标准shell 用这些特征构造*,?,[...]和[!...] 所有都不匹配斜杠。双星**可用于匹配任何 字符序列,包括斜杠。
因此,以下内容将完成我之后的工作(让我知道是否有更清晰的方法可用语法):
html_sidebars = {'**[!i][!n][!d][!e][!x]': ['non-index-sidebar.html'],
'**index': ['index-sidebar.html'],
}