diff --git a/CHANGES b/CHANGES index 3e247fb41..71c2a950d 100644 --- a/CHANGES +++ b/CHANGES @@ -121,6 +121,20 @@ Release 1.0 (in development) Release 0.6.6 (in development) ============================== +* Fix the handling of multiple toctrees when creating the global + TOC for the ``toctree()`` template function. + +* Fix the handling of hidden toctrees when creating the global TOC + for the ``toctree()`` template function. + +* Fix the handling of nested lists in the text writer. + +* #362: In autodoc, check for the existence of ``__self__`` on + function objects before accessing it. + +* #353: Strip leading and trailing whitespace when extracting + search words in the search function. + Release 0.6.5 (Mar 01, 2010) ============================ diff --git a/EXAMPLES b/EXAMPLES index e089cd466..0be237a56 100644 --- a/EXAMPLES +++ b/EXAMPLES @@ -58,6 +58,7 @@ Documentation using a customized version of the default theme * Bazaar: http://doc.bazaar.canonical.com/en/ * Chaco: http://code.enthought.com/projects/chaco/docs/html/ * Djagios: http://djagios.org/ +* GetFEM++: http://home.gna.org/getfem/ * GPAW: https://wiki.fysik.dtu.dk/gpaw/ * Grok: http://grok.zope.org/doc/current/ * IFM: http://fluffybunny.memebot.com/ifm-docs/index.html @@ -99,6 +100,7 @@ Documentation using the sphinxdoc theme Documentation using another builtin theme ----------------------------------------- +* C/C++ Development with Eclipse: http://book.dehlia.in/c-cpp-eclipse/ (agogo) * Distribute: http://packages.python.org/distribute/ (nature) * Jinja: http://jinja.pocoo.org/2/documentation/ (scrolls) * pip: http://pip.openplans.org/ (nature) diff --git a/doc/builders.rst b/doc/builders.rst index 5c61fba05..0eeb584c5 100644 --- a/doc/builders.rst +++ b/doc/builders.rst @@ -114,7 +114,8 @@ The builder's "name" must be given to the **-b** command-line option of Note that a direct PDF builder using ReportLab is available in `rst2pdf `_ version 0.12 or greater. You need to add ``'rst2pdf.pdfbuilder'`` to your :confval:`extensions` to enable it, its name is -``pdf``. +``pdf``. Refer to the `rst2pdf manual +`_ for details. .. module:: sphinx.builders.text .. class:: TextBuilder diff --git a/doc/ext/appapi.rst b/doc/ext/appapi.rst index e301cd840..cfdaaaa8c 100644 --- a/doc/ext/appapi.rst +++ b/doc/ext/appapi.rst @@ -177,7 +177,7 @@ the following public API: * If you provide *parse_node*, it must be a function that takes a string and a docutils node, and it must populate the node with children parsed from the string. It must then return the name of the item to be used in - cross-referencing and index entries. See the :file:`ext.py` file in the + cross-referencing and index entries. See the :file:`conf.py` file in the source for this documentation for an example. * The *objname* (if not given, will default to *directivename*) names the type of object. It is used when listing objects, e.g. in search results. diff --git a/sphinx/builders/html.py b/sphinx/builders/html.py index cd5f4f4a4..b10849346 100644 --- a/sphinx/builders/html.py +++ b/sphinx/builders/html.py @@ -199,6 +199,8 @@ class StandaloneHTMLBuilder(Builder): def render_partial(self, node): """Utility: Render a lone doctree node.""" + if node is None: + return {'fragment': ''} doc = new_document('') doc.append(node) diff --git a/sphinx/environment.py b/sphinx/environment.py index c545d7608..a39c28bd4 100644 --- a/sphinx/environment.py +++ b/sphinx/environment.py @@ -1022,12 +1022,19 @@ class BuildEnvironment: def get_toctree_for(self, docname, builder, collapse, maxdepth=0): """Return the global TOC nodetree.""" doctree = self.get_doctree(self.config.master_doc) + toctrees = [] for toctreenode in doctree.traverse(addnodes.toctree): - result = self.resolve_toctree(docname, builder, toctreenode, - prune=True, collapse=collapse, - maxdepth=maxdepth) - if result is not None: - return result + toctree = self.resolve_toctree(docname, builder, toctreenode, + prune=True, collapse=collapse, + maxdepth=maxdepth, + includehidden=True) + toctrees.append(toctree) + if not toctrees: + return None + result = toctrees[0] + for toctree in toctrees[1:]: + result.extend(toctree.children) + return result def get_domain(self, domainname): """Return the domain instance with the specified name. @@ -1075,7 +1082,7 @@ class BuildEnvironment: return doctree def resolve_toctree(self, docname, builder, toctree, prune=True, maxdepth=0, - titles_only=False, collapse=False): + titles_only=False, collapse=False, includehidden=False): """ Resolve a *toctree* node into individual bullet lists with titles as items, returning None (if no containing titles are found) or @@ -1088,7 +1095,7 @@ class BuildEnvironment: If *collapse* is True, all branches not containing docname will be collapsed. """ - if toctree.get('hidden', False): + if toctree.get('hidden', False) and not includehidden: return None def _walk_depth(node, depth, maxdepth): diff --git a/sphinx/ext/autodoc.py b/sphinx/ext/autodoc.py index 731c5f103..359689161 100644 --- a/sphinx/ext/autodoc.py +++ b/sphinx/ext/autodoc.py @@ -1010,6 +1010,7 @@ class MethodDocumenter(ClassLevelDocumenter): self.member_order = self.member_order - 1 elif isinstance(self.object, FunctionType) or \ (isinstance(self.object, BuiltinFunctionType) and + hasattr(self.object, '__self__') and self.object.__self__ is not None): self.directivetype = 'staticmethod' # document class and static members before ordinary ones diff --git a/sphinx/highlighting.py b/sphinx/highlighting.py index 8300bd326..f5ea859cb 100644 --- a/sphinx/highlighting.py +++ b/sphinx/highlighting.py @@ -34,6 +34,7 @@ try: from pygments.styles import get_style_by_name from pygments.styles.friendly import FriendlyStyle from pygments.token import Generic, Comment, Number + from pygments.util import ClassNotFound except ImportError: pygments = None lexers = None @@ -173,7 +174,7 @@ class PygmentsBridge(object): else: return True - def highlight_block(self, source, lang, linenos=False): + def highlight_block(self, source, lang, linenos=False, warn=None): if isinstance(source, str): source = source.decode() if not pygments: @@ -202,8 +203,16 @@ class PygmentsBridge(object): if lang in lexers: lexer = lexers[lang] else: - lexer = lexers[lang] = get_lexer_by_name(lang) - lexer.add_filter('raiseonerror') + try: + lexer = lexers[lang] = get_lexer_by_name(lang) + except ClassNotFound: + if warn: + warn('Pygments lexer name %s is not known' % lang) + return self.unhighlighted(source) + else: + raise + else: + lexer.add_filter('raiseonerror') # trim doctest options if wanted if isinstance(lexer, PythonConsoleLexer) and self.trim_doctest_flags: diff --git a/sphinx/themes/agogo/layout.html b/sphinx/themes/agogo/layout.html index 736363762..f1429770b 100644 --- a/sphinx/themes/agogo/layout.html +++ b/sphinx/themes/agogo/layout.html @@ -42,7 +42,7 @@