mirror of
https://github.com/sphinx-doc/sphinx.git
synced 2025-02-25 18:55:22 -06:00
Don't create Javascript by ourselves, we have sphinx.util.jsonimpl.dumps for that
This commit is contained in:
parent
023f342bed
commit
9545df0d56
@ -11,6 +11,7 @@
|
|||||||
|
|
||||||
import sys
|
import sys
|
||||||
import cPickle as pickle
|
import cPickle as pickle
|
||||||
|
import posixpath
|
||||||
from os import path
|
from os import path
|
||||||
from datetime import datetime
|
from datetime import datetime
|
||||||
|
|
||||||
@ -18,6 +19,7 @@ from jinja2 import Environment, FileSystemLoader
|
|||||||
|
|
||||||
from sphinx.application import Sphinx
|
from sphinx.application import Sphinx
|
||||||
from sphinx.util.osutil import ensuredir
|
from sphinx.util.osutil import ensuredir
|
||||||
|
from sphinx.util.jsonimpl import dumps as dump_json
|
||||||
from sphinx.websupport.search import BaseSearch, search_adapters
|
from sphinx.websupport.search import BaseSearch, search_adapters
|
||||||
from sphinx.websupport.storage import StorageBackend
|
from sphinx.websupport.storage import StorageBackend
|
||||||
from sphinx.websupport.errors import *
|
from sphinx.websupport.errors import *
|
||||||
@ -352,33 +354,28 @@ class WebSupport(object):
|
|||||||
that remains the same throughout the lifetime of the
|
that remains the same throughout the lifetime of the
|
||||||
:class:`~sphinx.websupport.WebSupport` object.
|
:class:`~sphinx.websupport.WebSupport` object.
|
||||||
"""
|
"""
|
||||||
parts = ['<script type="text/javascript">',
|
comment_urls = [
|
||||||
'var COMMENT_OPTIONS = {']
|
('addCommentURL', 'add_comment'),
|
||||||
if self.docroot is not '':
|
('getCommentsURL', 'get_comments'),
|
||||||
parts.append('addCommentURL: "/%s/%s",' % (self.docroot,
|
('processVoteURL', 'process_vote'),
|
||||||
'add_comment'))
|
('acceptCommentURL', 'accept_comment'),
|
||||||
parts.append('getCommentsURL: "/%s/%s",' % (self.docroot,
|
('rejectCommentURL', 'reject_comment'),
|
||||||
'get_comments'))
|
('deleteCommentURL', 'delete_comment')
|
||||||
parts.append('processVoteURL: "/%s/%s",' % (self.docroot,
|
]
|
||||||
'process_vote'))
|
static_urls = [
|
||||||
parts.append('acceptCommentURL: "/%s/%s",' % (self.docroot,
|
('commentImage', 'comment.png'),
|
||||||
'accept_comment'))
|
('commentBrightImage', 'comment-bright.png'),
|
||||||
parts.append('rejectCommentURL: "/%s/%s",' % (self.docroot,
|
('upArrow', 'up.png'),
|
||||||
'reject_comment'))
|
('upArrowPressed', 'up-pressed.png'),
|
||||||
parts.append('deleteCommentURL: "/%s/%s",' % (self.docroot,
|
('downArrow', 'down.png'),
|
||||||
'delete_comment'))
|
('downArrowPressed', 'down-pressed.png')
|
||||||
|
]
|
||||||
|
|
||||||
if self.staticdir != 'static':
|
self.base_comment_opts = {}
|
||||||
p = lambda file: '%s/_static/%s' % (self.staticdir, file)
|
for key, value in comment_urls:
|
||||||
parts.append('commentImage: "/%s",' % p('comment.png') )
|
self.base_comment_opts[key] = posixpath.join(self.docroot, value)
|
||||||
parts.append(
|
for key, value in static_urls:
|
||||||
'commentBrightImage: "/%s",' % p('comment-bright.png') )
|
self.base_comment_opts[key] = posixpath.join(self.staticdir, value)
|
||||||
parts.append('upArrow: "/%s",' % p('up.png'))
|
|
||||||
parts.append('downArrow: "/%s",' % p('down.png'))
|
|
||||||
parts.append('upArrowPressed: "/%s",' % p('up-pressed.png'))
|
|
||||||
parts.append('downArrowPressed: "/%s",' % p('down-pressed.png'))
|
|
||||||
|
|
||||||
self.base_comment_opts = '\n'.join(parts)
|
|
||||||
|
|
||||||
def _make_comment_options(self, username, moderator):
|
def _make_comment_options(self, username, moderator):
|
||||||
"""Helper method to create the parts of the COMMENT_OPTIONS
|
"""Helper method to create the parts of the COMMENT_OPTIONS
|
||||||
@ -388,19 +385,22 @@ class WebSupport(object):
|
|||||||
:param moderator: Whether the user making the request is a moderator.
|
:param moderator: Whether the user making the request is a moderator.
|
||||||
"""
|
"""
|
||||||
parts = [self.base_comment_opts]
|
parts = [self.base_comment_opts]
|
||||||
if username is not '':
|
rv = self.base_comment_opts.copy()
|
||||||
parts.append('voting: true,')
|
if username:
|
||||||
parts.append('username: "%s",' % username)
|
rv.update({
|
||||||
parts.append('moderator: %s' % str(moderator).lower())
|
'voting': True,
|
||||||
parts.append('};')
|
'username': username,
|
||||||
parts.append('</script>')
|
'moderator': str(moderator).lower(),
|
||||||
return '\n'.join(parts)
|
})
|
||||||
|
return '\n'.join([
|
||||||
|
'<script type="text/javascript">',
|
||||||
|
'var COMMENT_OPTIONS = %s;' % dump_json(rv),
|
||||||
|
'</script>'
|
||||||
|
])
|
||||||
|
|
||||||
def _make_metadata(self, data):
|
def _make_metadata(self, data):
|
||||||
node_js = ', '.join(['%s: %s' % (node_id, comment_count)
|
return '\n'.join([
|
||||||
for node_id, comment_count in data.iteritems()])
|
'<script type="text/javascript">',
|
||||||
js = """
|
'var COMMENT_METADATA = %s;' % dump_json(data),
|
||||||
<script type="text/javascript">
|
'</script>'
|
||||||
var COMMENT_METADATA = {%s};
|
])
|
||||||
</script>""" % node_js
|
|
||||||
return js
|
|
||||||
|
Loading…
Reference in New Issue
Block a user