问题
I am using Sphinx to build user docs for an application. According to the documentation for build configuration file there is an html_sidebars setting with an example documentaion.
html_sidebars = {
'**': ['globaltoc.html', 'sourcelink.html', 'searchbox.html'],
'using/windows': ['windowssidebar.html', 'searchbox.html'],
}
I am looking to have all pages display the sidebar except one, I have only been able to achieve the inverse of that, where the sidebar appears on just one page and not the rest.
html_sidebars = {'index': ['localtoc.html']}
I know that its possible to use glob syntax and I've tried almost every variation of [!index] I can think of without success.
回答1:
You will need to have your expression match everything except the string 'index'. Unfortunately globbing is not that flexible. There are several ways of working around it.
- explicitly list each file except index
- rename the files that you want to have the sidebar with a prefix or suffix, and use a corresponding globbing pattern to match only those files
- move the files into a subdirectory, and use a corresponding globbing pattern
- try
[!x]
, assuming no other file has "x" in its name (i, n, d, and e are too common) - possibly something else?
回答2:
I had the same issue, and was able to achieve the desired result using:
html_sidebars = {
'**': ['localtoc.html'],
'index': []
}
来源:https://stackoverflow.com/questions/45112812/sphinx-exclude-one-page-from-html-sidebars