Exemple #1
0
 def get_toc(self):
     """Get the total table of contents, containg the master_doc
     and pre and post files not managed by sphinx.
     """
     doctree = self.env.get_and_resolve_doctree(self.config.master_doc,
                                                self,
                                                prune_toctrees=False)
     self.refnodes = self.get_refnodes(doctree, [])
     main_dir = os.path.dirname(self.config.master_doc)
     if main_dir:
         main_dir += '/'  # XXX or os.sep?
         for item in self.refnodes:
             item['refuri'] = main_dir + item['refuri']
     self.refnodes.insert(
         0, {
             'level':
             1,
             'refuri':
             self.esc(self.config.master_doc + '.html'),
             'text':
             ssp(self.esc(self.env.titles[self.config.master_doc].astext()))
         })
     for file, text in reversed(self.config.mobi_pre_files):
         self.refnodes.insert(0, {
             'level': 1,
             'refuri': self.esc(file),
             'text': ssp(self.esc(text))
         })
     for file, text in self.config.mobi_post_files:
         self.refnodes.append({
             'level': 1,
             'refuri': self.esc(file),
             'text': ssp(self.esc(text))
         })
Exemple #2
0
 def get_toc(self):
     """Get the total table of contents, containg the master_doc
     and pre and post files not managed by sphinx.
     """
     doctree = self.env.get_and_resolve_doctree(self.config.master_doc,
         self, prune_toctrees=False)
     self.refnodes = self.get_refnodes(doctree, [])
     master_dir = os.path.dirname(self.config.master_doc)
     if master_dir:
         master_dir += '/' # XXX or os.sep?
         for item in self.refnodes:
             item['refuri'] = master_dir + item['refuri']
     self.refnodes.insert(0, {
         'level': 1,
         'refuri': self.esc(self.config.master_doc + '.html'),
         'text': ssp(self.esc(
                 self.env.titles[self.config.master_doc].astext()))
     })
     for file, text in reversed(self.config.epub_pre_files):
         self.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({
             'level': 1,
             'refuri': self.esc(file),
             'text': ssp(self.esc(text))
         })
Exemple #3
0
 def toc_add_files(self, refnodes):
     # type: (List[nodes.Node]) -> None
     """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 + self.out_suffix),
             'text':
             ssp(self.esc(self.env.titles[self.config.master_doc].astext()))
         })
     for file, text in reversed(self.config.epub_pre_files):
         refnodes.insert(0, {
             'level': 1,
             'refuri': self.esc(file),
             'text': ssp(self.esc(text))
         })
     for file, text in self.config.epub_post_files:
         refnodes.append({
             'level': 1,
             'refuri': self.esc(file),
             'text': ssp(self.esc(text))
         })
Exemple #4
0
 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 + self.out_suffix),
             "text": ssp(self.esc(self.env.titles[self.config.master_doc].astext())),
         },
     )
     for file, text in reversed(self.config.epub_pre_files):
         refnodes.insert(0, {"level": 1, "refuri": self.esc(file), "text": ssp(self.esc(text))})
     for file, text in self.config.epub_post_files:
         refnodes.append({"level": 1, "refuri": self.esc(file), "text": ssp(self.esc(text))})
Exemple #5
0
 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(
                 self.env.titles[self.config.master_doc].astext()))
     })
     for file, text in reversed(self.config.epub_pre_files):
         refnodes.insert(0, {
             'level': 1,
             'refuri': self.esc(file),
             'text': ssp(self.esc(text))
         })
     for file, text in self.config.epub_post_files:
         refnodes.append({
             'level': 1,
             'refuri': self.esc(file),
             'text': ssp(self.esc(text))
         })
Exemple #6
0
 def get_refnodes(self, doctree, result):
     """Collect section titles, their depth in the toc and the refuri."""
     # XXX: is there a better way than checking the attribute
     # toctree-l[1-8] on the parent node?
     if isinstance(doctree, nodes.reference) and 'refuri' in doctree:
         refuri = doctree['refuri']
         if refuri.startswith('http://') or refuri.startswith('https://') \
            or refuri.startswith('irc:') or refuri.startswith('mailto:'):
             return result
         classes = doctree.parent.attributes['classes']
         for level in range(8, 0, -1):  # or range(1, 8)?
             if (self.toctree_template % level) in classes:
                 result.append({
                     'level': level,
                     'refuri': self.esc(refuri),
                     'text': ssp(self.esc(doctree.astext()))
                 })
                 break
     else:
         for elem in doctree.children:
             result = self.get_refnodes(elem, result)
     return result
Exemple #7
0
 def get_refnodes(self, doctree, result):
     """Collect section titles, their depth in the toc and the refuri."""
     # XXX: is there a better way than checking the attribute
     # toctree-l[1-8] on the parent node?
     if isinstance(doctree, nodes.reference) and doctree.has_key('refuri'):
         refuri = doctree['refuri']
         if refuri.startswith('http://') or refuri.startswith('https://') \
             or refuri.startswith('irc:') or refuri.startswith('mailto:'):
             return result
         classes = doctree.parent.attributes['classes']
         for level in range(8, 0, -1): # or range(1, 8)?
             if (_toctree_template % level) in classes:
                 result.append({
                     'level': level,
                     'refuri': self.esc(refuri),
                     'text': ssp(self.esc(doctree.astext()))
                 })
                 break
     else:
         for elem in doctree.children:
             result = self.get_refnodes(elem, result)
     return result
Exemple #8
0
 def get_refnodes(self, doctree, result):
     """Collect section titles, their depth in the toc and the refuri."""
     # XXX: is there a better way than checking the attribute
     # toctree-l[1-8] on the parent node?
     if isinstance(doctree, nodes.reference) and "refuri" in doctree:
         refuri = doctree["refuri"]
         if (
             refuri.startswith("http://")
             or refuri.startswith("https://")
             or refuri.startswith("irc:")
             or refuri.startswith("mailto:")
         ):
             return result
         classes = doctree.parent.attributes["classes"]
         for level in range(8, 0, -1):  # or range(1, 8)?
             if (self.toctree_template % level) in classes:
                 result.append({"level": level, "refuri": self.esc(refuri), "text": ssp(self.esc(doctree.astext()))})
                 break
     else:
         for elem in doctree.children:
             result = self.get_refnodes(elem, result)
     return result