From b4a6b2c3c130129e70a76e909a0f886df21d1f18 Mon Sep 17 00:00:00 2001 From: Michael Jones Date: Sun, 5 Jun 2011 14:21:47 +1200 Subject: [PATCH] Respect "includehidden" for sub-toctrees as well Previously, the includehidden method argument was only being taken into account for top level toctrees. This meant that hidden subtree toctrees were still being resolved if they exists below a non-hidden toctree. --- sphinx/environment.py | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/sphinx/environment.py b/sphinx/environment.py index 6fe18f59e..f7aa5a5ff 100644 --- a/sphinx/environment.py +++ b/sphinx/environment.py @@ -1376,12 +1376,13 @@ class BuildEnvironment: toplevel[1][:] = subtrees # resolve all sub-toctrees for toctreenode in toc.traverse(addnodes.toctree): - i = toctreenode.parent.index(toctreenode) + 1 - for item in _entries_from_toctree(toctreenode, - subtree=True): - toctreenode.parent.insert(i, item) - i += 1 - toctreenode.parent.remove(toctreenode) + if not ( toctreenode.get('hidden', False) and not includehidden ): + i = toctreenode.parent.index(toctreenode) + 1 + for item in _entries_from_toctree(toctreenode, + subtree=True): + toctreenode.parent.insert(i, item) + i += 1 + toctreenode.parent.remove(toctreenode) if separate: entries.append(toc) else: @@ -1740,3 +1741,4 @@ class BuildEnvironment: if 'orphan' in self.metadata[docname]: continue self.warn(docname, 'document isn\'t included in any toctree') +