def write_doc(self, docname: str, doctree: nodes.document) -> None: destination = StringOutput(encoding="utf-8") doctree.settings = self.docsettings self.secnumbers = self.env.toc_secnumbers.get(docname, {}) self.fignumbers = self.env.toc_fignumbers.get(docname, {}) self.imgpath = self.resources_path self.dlpath = self.resources_path self.current_docname = docname if ( doctree.children and doctree.children[0].children and doctree.children[0].children[0].tagname == "title" ): # Removing the h1 header to avoid having it duplicated. doctree.children[0].children.pop(0) self.docwriter.write(doctree, destination) self.docwriter.assemble_parts() body = self.docwriter.parts["fragment"] metatags = self.docwriter.clean_meta base_docname = os.path.basename(docname) if base_docname != "index": ctx = self.get_doc_context(docname, body, metatags) if self.config.html_published_location and doctree.children: ctx["source_url"] = self.build_external_url(docname) self.handle_page(docname, ctx, event_arg=doctree) self.write_card_definition(docname)
def write_doc(self, docname: str, doctree: nodes.document) -> None: destination = StringOutput(encoding='utf-8') doctree.settings = self.docsettings self.secnumbers = self.env.toc_secnumbers.get(docname, {}) self.fignumbers = self.env.toc_fignumbers.get(docname, {}) self.imgpath = relative_uri(self.get_target_uri(docname), '_images') self.dlpath = relative_uri(self.get_target_uri(docname), '_downloads') self.current_docname = docname self.docwriter.write(doctree, destination) self.docwriter.assemble_parts() body = self.docwriter.parts['fragment'] metatags = self.docwriter.clean_meta ctx = self.get_doc_context(docname, body, metatags) self.handle_page(docname, ctx, event_arg=doctree)
def write_doctree(self, docname: str, doctree: nodes.document) -> None: """Write the doctree to a file.""" # make it picklable doctree.reporter = None doctree.transformer = None # Create a copy of settings object before modification because it is # shared with other documents. doctree.settings = doctree.settings.copy() doctree.settings.warning_stream = None doctree.settings.env = None doctree.settings.record_dependencies = None doctree_filename = path.join(self.doctreedir, docname + '.doctree') ensuredir(path.dirname(doctree_filename)) with open(doctree_filename, 'wb') as f: pickle.dump(doctree, f, pickle.HIGHEST_PROTOCOL)