diff --git a/CHANGES b/CHANGES index 978ff7b1e..6f1745e5e 100644 --- a/CHANGES +++ b/CHANGES @@ -27,6 +27,7 @@ Bugs fixed * #2684: `sphinx.ext.intersphinx` crashes with six-1.4.1 * #2679: ``float`` package needed for ``'figure_align': 'H'`` latex option * #2671: image directive may lead to inconsistent spacing in pdf +* #2705: `toctree` generates empty bullet_list if ``:titlesonly:`` specified Release 1.4.4 (released Jun 12, 2016) diff --git a/sphinx/environment.py b/sphinx/environment.py index 9d4c174cc..0ff9b781a 100644 --- a/sphinx/environment.py +++ b/sphinx/environment.py @@ -1453,7 +1453,10 @@ class BuildEnvironment: # nodes with length 1 don't have any children anyway if len(toplevel) > 1: subtrees = toplevel.traverse(addnodes.toctree) - toplevel[1][:] = subtrees + if subtrees: + toplevel[1][:] = subtrees + else: + toplevel.pop(1) # resolve all sub-toctrees for subtocnode in toc.traverse(addnodes.toctree): if not (subtocnode.get('hidden', False) and @@ -1499,6 +1502,9 @@ class BuildEnvironment: _toctree_add_classes(newnode, 1) self._toctree_prune(newnode, 1, prune and maxdepth or 0, collapse) + if len(newnode[-1]) == 0: # No titles found + return None + # set the target paths in the toctrees (they are not known at TOC # generation time) for refnode in newnode.traverse(nodes.reference):