Anonymous avatar Anonymous committed 37721fa

Cleanup of toc generation.

Extract method toc_add_files and also call it in the includehidden=False
branch of build_toc.

Comments (0)

Files changed (1)


             master_dir += '/' # XXX or os.sep?
             for item in self.refnodes:
                 item['refuri'] = master_dir + item['refuri']
-        self.refnodes.insert(0, {
+        self.toc_add_files(self.refnodes)
+    def toc_add_files(self, refnodes):
+        """Add the master_doc, pre and post files to a list of refnodes.
+        """
+        refnodes.insert(0, {
             'level': 1,
             'refuri': self.esc(self.config.master_doc + '.html'),
             'text': ssp(self.esc(
         for file, text in reversed(self.config.epub_pre_files):
-            self.refnodes.insert(0, {
+            refnodes.insert(0, {
                 'level': 1,
                 'refuri': self.esc(file),
                 'text': ssp(self.esc(text))
         for file, text in self.config.epub_post_files:
-            self.refnodes.append({
+            refnodes.append({
                 'level': 1,
                 'refuri': self.esc(file),
                 'text': ssp(self.esc(text))
         doctree = self.env.get_and_resolve_doctree(self.config.master_doc,
             self, prune_toctrees=False, includehidden=False)
         refnodes = self.get_refnodes(doctree, [])
-        if not refnodes:
+        if refnodes:
+            self.toc_add_files(refnodes)
+        else:
             refnodes = self.refnodes
         navpoints = self.build_navpoints(refnodes)
         level = max(item['level'] for item in self.refnodes)
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
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.