diff options
author | Jacob Mason <jacoblmason@gmail.com> | 2010-08-14 17:43:20 -0500 |
---|---|---|
committer | Jacob Mason <jacoblmason@gmail.com> | 2010-08-14 17:43:20 -0500 |
commit | f94df908bcc73701d96de8b99ff5d034d6186ba6 (patch) | |
tree | 1e7a58a540545a54a51beaae53333a860ace4ddd /sphinx/builders/websupport.py | |
parent | 89566e69c994546ec9cf3157d9c915555c4017b2 (diff) | |
download | sphinx-git-f94df908bcc73701d96de8b99ff5d034d6186ba6.tar.gz |
resave pickle after uids are added
Diffstat (limited to 'sphinx/builders/websupport.py')
-rw-r--r-- | sphinx/builders/websupport.py | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/sphinx/builders/websupport.py b/sphinx/builders/websupport.py index ac9dd7152..59bfd7c86 100644 --- a/sphinx/builders/websupport.py +++ b/sphinx/builders/websupport.py @@ -61,6 +61,23 @@ class WebSupportBuilder(StandaloneHTMLBuilder): stream=WarningStream(self.env._warnfunc)) return doctree + def resave_doctree(self, docname, doctree): + # make it picklable, save the reporter, it's needed later. + reporter = doctree.reporter + doctree.reporter = None + doctree.settings.warning_stream = None + doctree.settings.env = None + doctree.settings.record_dependencies = None + + fp = self.env.doc2path(docname, self.doctreedir, '.doctree') + f = open(fp, 'wb') + try: + pickle.dump(doctree, f, pickle.HIGHEST_PROTOCOL) + finally: + f.close() + + doctree.reporter = reporter + def write_doc(self, docname, doctree): destination = StringOutput(encoding='utf-8') doctree.settings = self.docsettings @@ -70,6 +87,7 @@ class WebSupportBuilder(StandaloneHTMLBuilder): list(merge_doctrees(old_doctree, doctree, is_commentable)) else: list(add_uids(doctree, is_commentable)) + self.resave_doctree(docname, doctree) self.cur_docname = docname self.secnumbers = self.env.toc_secnumbers.get(docname, {}) |