summaryrefslogtreecommitdiff
path: root/sphinx/builders/websupport.py
diff options
context:
space:
mode:
authorJacob Mason <jacoblmason@gmail.com>2010-08-14 17:43:20 -0500
committerJacob Mason <jacoblmason@gmail.com>2010-08-14 17:43:20 -0500
commitf94df908bcc73701d96de8b99ff5d034d6186ba6 (patch)
tree1e7a58a540545a54a51beaae53333a860ace4ddd /sphinx/builders/websupport.py
parent89566e69c994546ec9cf3157d9c915555c4017b2 (diff)
downloadsphinx-git-f94df908bcc73701d96de8b99ff5d034d6186ba6.tar.gz
resave pickle after uids are added
Diffstat (limited to 'sphinx/builders/websupport.py')
-rw-r--r--sphinx/builders/websupport.py18
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, {})