Anonymous avatar Anonymous committed 071dbf0

Add new setting epub_tocscope for epub builder.

The new setting replaces the old heuristic that was never that good.

Comments (0)

Files changed (4)

    a chapter, but can be confusing because it mixes entries of differnet
    depth in one list.  The default value is ``True``.
 
+.. confval:: epub_tocscope
+
+   This setting control the scope of the epub table of contents.  The setting
+   can have the following values:
+
+   * ``'default'`` -- include all toc entries that are not hidden (default)
+   * ``'includehidden'`` -- include all toc entries
+
+   .. versionadded:: 1.2
 
 .. confval:: epub_fix_images
 

sphinx/builders/epub.py

         """Write the metainfo file toc.ncx."""
         self.info('writing %s file...' % outname)
 
-        doctree = self.env.get_and_resolve_doctree(self.config.master_doc,
-            self, prune_toctrees=False, includehidden=False)
-        refnodes = self.get_refnodes(doctree, [])
-        if refnodes:
+        if self.config.epub_tocscope == 'default':
+            doctree = self.env.get_and_resolve_doctree(self.config.master_doc,
+                self, prune_toctrees=False, includehidden=False)
+            refnodes = self.get_refnodes(doctree, [])
             self.toc_add_files(refnodes)
         else:
+            # 'includehidden'
             refnodes = self.refnodes
         navpoints = self.build_navpoints(refnodes)
         level = max(item['level'] for item in self.refnodes)
         epub_exclude_files = ([], 'env'),
         epub_tocdepth = (3, 'env'),
         epub_tocdup = (True, 'env'),
+        epub_tocscope = ('default', 'env'),
         epub_fix_images = (False, 'env'),
         epub_max_image_width = (0, 'env'),
         epub_show_urls = ('inline', 'html'),

sphinx/quickstart.py

 # Allow duplicate toc entries.
 #epub_tocdup = True
 
+# Choose between 'default' and 'includehidden'.
+#epub_tocscope = 'default'
+
 # Fix unsupported image types using the PIL.
 #epub_fix_images = False
 
Tip: Filter by directory path e.g. /media app.js to search for public/media/app.js.
Tip: Use camelCasing e.g. ProjME to search for ProjectModifiedEvent.java.
Tip: Filter by extension type e.g. /repo .js to search for all .js files in the /repo directory.
Tip: Separate your search with spaces e.g. /ssh pom.xml to search for src/ssh/pom.xml.
Tip: Use ↑ and ↓ arrow keys to navigate and return to view the file.
Tip: You can also navigate files with Ctrl+j (next) and Ctrl+k (previous) and view the file with Ctrl+o.
Tip: You can also navigate files with Alt+j (next) and Alt+k (previous) and view the file with Alt+o.