summaryrefslogtreecommitdiff
path: root/sphinx/ext/jsmath.py
diff options
context:
space:
mode:
authorTakeshi KOMIYA <i.tkomiya@gmail.com>2018-10-16 00:47:20 +0900
committerTakeshi KOMIYA <i.tkomiya@gmail.com>2018-10-17 01:42:17 +0900
commit2e6e940df857d4710e2a125a1d239587bc8f7a69 (patch)
tree86f91f497bf7e68ae098103b727c6eed014a4b75 /sphinx/ext/jsmath.py
parentbe2b86cc15a2f5fca1581c25ebf2db9a189dbc41 (diff)
downloadsphinx-git-2e6e940df857d4710e2a125a1d239587bc8f7a69.tar.gz
Fix #5497: Do not include MathJax.js and jsmath.js unless it is really needed
Diffstat (limited to 'sphinx/ext/jsmath.py')
-rw-r--r--sphinx/ext/jsmath.py15
1 files changed, 9 insertions, 6 deletions
diff --git a/sphinx/ext/jsmath.py b/sphinx/ext/jsmath.py
index 0ee42050c..3babd408e 100644
--- a/sphinx/ext/jsmath.py
+++ b/sphinx/ext/jsmath.py
@@ -21,6 +21,7 @@ if False:
# For type annotation
from typing import Any, Dict # NOQA
from sphinx.application import Sphinx # NOQA
+ from sphinx.environment import BuildEnvironment # NOQA
def html_visit_math(self, node):
@@ -58,14 +59,16 @@ def html_visit_displaymath(self, node):
raise nodes.SkipNode
-def builder_inited(app):
- # type: (Sphinx) -> None
+def install_jsmath(app, env):
+ # type: (Sphinx, BuildEnvironment) -> None
if app.builder.format != 'html' or app.builder.math_renderer_name != 'jsmath': # type: ignore # NOQA
- pass
- elif not app.config.jsmath_path:
+ return
+ if not app.config.jsmath_path:
raise ExtensionError('jsmath_path config value must be set for the '
'jsmath extension to work')
- if app.builder.format == 'html':
+
+ if env.get_domain('math').has_equations(): # type: ignore
+ # Enable jsmath only if equations exists
app.builder.add_js_file(app.config.jsmath_path) # type: ignore
@@ -76,5 +79,5 @@ def setup(app):
(html_visit_displaymath, None))
app.add_config_value('jsmath_path', '', False)
- app.connect('builder-inited', builder_inited)
+ app.connect('env-check-consistency', install_jsmath)
return {'version': sphinx.__display_version__, 'parallel_read_safe': True}