summaryrefslogtreecommitdiff
path: root/sandbox/py-rest-doc/sphinx/builder.py
diff options
context:
space:
mode:
authorblackbird <blackbird@929543f6-e4f2-0310-98a6-ba3bd3dd1d04>2007-05-22 21:11:58 +0000
committerblackbird <blackbird@929543f6-e4f2-0310-98a6-ba3bd3dd1d04>2007-05-22 21:11:58 +0000
commit57b6a2e9aaf13a745407bcf77ec182ec16b58e20 (patch)
treecb7263f3015af199e5048513f99a843958ccaa4f /sandbox/py-rest-doc/sphinx/builder.py
parent6c34caabbe1eb96f3ddcf6900d63526b639df924 (diff)
downloaddocutils-57b6a2e9aaf13a745407bcf77ec182ec16b58e20.tar.gz
implemented online search
git-svn-id: http://svn.code.sf.net/p/docutils/code/trunk@5094 929543f6-e4f2-0310-98a6-ba3bd3dd1d04
Diffstat (limited to 'sandbox/py-rest-doc/sphinx/builder.py')
-rw-r--r--sandbox/py-rest-doc/sphinx/builder.py17
1 files changed, 16 insertions, 1 deletions
diff --git a/sandbox/py-rest-doc/sphinx/builder.py b/sandbox/py-rest-doc/sphinx/builder.py
index 2d9771ac5..cb2440ae6 100644
--- a/sandbox/py-rest-doc/sphinx/builder.py
+++ b/sandbox/py-rest-doc/sphinx/builder.py
@@ -436,7 +436,7 @@ class StandaloneHTMLBuilder(Builder):
if self.indexer is not None:
self.msg('dumping search index...')
f = open(path.join(self.outdir, 'searchindex.json'), 'w')
- self.indexer.dump(f)
+ self.indexer.dump(f, 'json')
f.close()
def render_partial(self, node):
@@ -462,6 +462,7 @@ class WebHTMLBuilder(StandaloneHTMLBuilder):
option_spec = Builder.option_spec
option_spec.update({
'nostyle': 'Don\'t copy style and script files',
+ 'searchindex': 'Create a search index for the online search',
})
def get_target_uri(self, source_filename):
@@ -472,6 +473,14 @@ class WebHTMLBuilder(StandaloneHTMLBuilder):
return source_filename[:-4] + '/'
def handle_file(self, filename, context):
+ # only index pages with title and category
+ title = context['title']
+ if self.indexer is not None and title:
+ category = get_category(filename)
+ if category is not None:
+ self.indexer.feed(filename, category, title,
+ self.doctrees[filename])
+
outfilename = path.join(self.outdir, filename[:-4] + '.fpickle')
ensuredir(path.dirname(outfilename))
fp = open(outfilename, 'wb')
@@ -490,6 +499,12 @@ class WebHTMLBuilder(StandaloneHTMLBuilder):
pickle.dump(specialcontext, fp, 2)
fp.close()
+ if self.indexer is not None:
+ self.msg('dumping search index...')
+ f = open(path.join(self.outdir, 'searchindex.pickle'), 'w')
+ self.indexer.dump(f, 'pickle')
+ f.close()
+
builders = {
'html': StandaloneHTMLBuilder,