Sphinx从html_sidebars中排除一个页面

时间:2017-07-14 23:15:35

标签: configuration python-sphinx glob

我正在使用Sphinx为应用程序构建用户文档。根据构建配置文件的文档,有一个带有示例documentaion的html_sidebars设置。

html_sidebars = {
'**': ['globaltoc.html', 'sourcelink.html', 'searchbox.html'],
'using/windows': ['windowssidebar.html', 'searchbox.html'],
}

我希望所有页面都显示侧边栏,除了一个,我只能实现相反的情况,侧边栏只出现在一页而不是其余部分。

html_sidebars = {'index': ['localtoc.html']}

我知道可以使用glob语法而且我已经尝试了几乎所有[!index]的变体我都能想到没有成功。

2 个答案:

答案 0 :(得分:2)

您需要让表达式匹配除字符串' index'之外的所有内容。不幸的是,globbing不是那么灵活。有几种解决方法。

  1. 明确列出除索引
  2. 之外的每个文件
  3. 重命名您希望侧栏带有前缀或后缀的文件,并使用相应的globbing模式仅匹配这些文件
  4. 将文件移动到子目录中,并使用相应的globbing模式
  5. 尝试[!x],假设没有其他文件有" x"在其名称中(i,n,d和e太常见了)
  6. 可能还有别的吗?

答案 1 :(得分:1)

我遇到了同样的问题,并且能够使用以下方法获得所需的结果:

html_sidebars = {
    '**': ['localtoc.html'],
    'index': []
}