[Python-checkins] r62629 - in doctools/trunk: CHANGES sphinx/environment.py sphinx/htmlhelp.py
georg.brandl
python-checkins at python.org
Fri May 2 11:00:10 CEST 2008
Author: georg.brandl
Date: Fri May 2 11:00:09 2008
New Revision: 62629
Log:
Allow any master document structure when writing the HTML help contents file.
Modified:
doctools/trunk/CHANGES
doctools/trunk/sphinx/environment.py
doctools/trunk/sphinx/htmlhelp.py
Modified: doctools/trunk/CHANGES
==============================================================================
--- doctools/trunk/CHANGES (original)
+++ doctools/trunk/CHANGES Fri May 2 11:00:09 2008
@@ -1,11 +1,17 @@
-Release 0.3 (TBA)
-=================
+Changes in trunk
+================
New features added
------------------
-* If the `pygments_style` contains a dot it's treated as import path and
- used as style class.
+* If the `pygments_style` config value contains a dot it's treated as the
+ import path of a custom Pygments style class.
+
+Bugs fixed
+----------
+
+* sphinx.htmlwriter: Correctly write the TOC file for any structure of the
+ master document.
Release 0.2 (Apr 27, 2008)
Modified: doctools/trunk/sphinx/environment.py
==============================================================================
--- doctools/trunk/sphinx/environment.py (original)
+++ doctools/trunk/sphinx/environment.py Fri May 2 11:00:09 2008
@@ -700,7 +700,7 @@
stream=RedirStream(self._warnfunc))
return doctree
- def get_and_resolve_doctree(self, docname, builder, doctree=None):
+ def get_and_resolve_doctree(self, docname, builder, doctree=None, prune_toctrees=True):
"""Read the doctree from the pickle, resolve cross-references and
toctrees and return it."""
if doctree is None:
@@ -753,8 +753,9 @@
tocentries = _entries_from_toctree(toctreenode, separate=True)
if tocentries:
newnode = addnodes.compact_paragraph('', '', *tocentries)
+ newnode['toctree'] = True
# prune the tree to maxdepth and replace titles
- if maxdepth > 0:
+ if maxdepth > 0 and prune_toctrees:
_walk_depth(newnode, 1, maxdepth, titleoverrides)
# replace titles, if needed
if titleoverrides:
Modified: doctools/trunk/sphinx/htmlhelp.py
==============================================================================
--- doctools/trunk/sphinx/htmlhelp.py (original)
+++ doctools/trunk/sphinx/htmlhelp.py Fri May 2 11:00:09 2008
@@ -150,7 +150,8 @@
if builder.config.html_use_modindex:
f.write('<LI> ' + object_sitemap % ('Global Module Index', 'modindex.html'))
# the TOC
- toc = builder.env.get_and_resolve_doctree(builder.config.master_doc, builder)
+ tocdoc = builder.env.get_and_resolve_doctree(builder.config.master_doc, builder,
+ prune_toctrees=False)
def write_toc(node, ullevel=0):
if isinstance(node, nodes.list_item):
f.write('<LI> ')
@@ -169,11 +170,10 @@
elif isinstance(node, addnodes.compact_paragraph):
for subnode in node:
write_toc(subnode, ullevel)
- elif isinstance(node, nodes.section):
- write_toc(node[1], ullevel)
- elif isinstance(node, nodes.document):
- write_toc(node[0], ullevel)
- write_toc(toc)
+ istoctree = lambda node: isinstance(node, addnodes.compact_paragraph) and \
+ node.has_key('toctree')
+ for node in tocdoc.traverse(istoctree):
+ write_toc(node)
f.write(contents_footer)
finally:
f.close()
More information about the Python-checkins
mailing list