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)) })
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)) })
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)) })
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))})
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)) })
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
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
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