Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Move to MathJax 3. #7961

Merged
merged 9 commits into from Jul 24, 2020
Merged
Show file tree
Hide file tree
Changes from 5 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
3 changes: 3 additions & 0 deletions CHANGES
Expand Up @@ -12,6 +12,9 @@ Incompatible changes

* #4826: py domain: The structure of python objects is changed. A boolean value
is added to indicate that the python object is canonical one
* #7425: MathJax: The MathJax was changed from 2 to 3. Users using a custom
MathJax configuration may have to set the old MathJax path or update their
configuration for version 3. See :mod:`sphinx.ext.mathjax`.
* #7784: i18n: The msgid for alt text of image is changed

Deprecated
Expand Down
11 changes: 8 additions & 3 deletions doc/usage/extensions/math.rst
Expand Up @@ -140,6 +140,11 @@ are built:
.. module:: sphinx.ext.mathjax
:synopsis: Render math using JavaScript via MathJax.

.. warning::
Version 4.0 changes the version of MathJax used to version 3. You may need to
override ``mathjax_path`` to ``https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.7/latest.js?config=TeX-AMS-MML_HTMLorMML``
hameerabbasi marked this conversation as resolved.
Show resolved Hide resolved
or update your configuration options for version 3.

.. versionadded:: 1.1

This extension puts math as-is into the HTML files. The JavaScript package
Expand All @@ -161,14 +166,14 @@ Sphinx but is set to automatically include it from a third-party site.
MathJax.

The default is the ``https://`` URL that loads the JS files from the
`cdnjs`__ Content Delivery Network. See the `MathJax Getting Started
`jsdelivr`__ Content Delivery Network. See the `MathJax Getting Started
page`__ for details. If you want MathJax to be available offline or
without including resources from a third-party site, you have to
download it and set this value to a different path.

__ https://cdnjs.com
__ https://www.jsdelivr.com/

__ https://docs.mathjax.org/en/latest/start.html
__ https://www.mathjax.org/#gettingstarted

The path can be absolute or relative; if it is relative, it is relative to
the ``_static`` directory of the built docs.
Expand Down
4 changes: 2 additions & 2 deletions sphinx/ext/mathjax.py
Expand Up @@ -96,8 +96,8 @@ def setup(app: Sphinx) -> Dict[str, Any]:
# more information for mathjax secure url is here:
# https://docs.mathjax.org/en/latest/start.html#secure-access-to-the-cdn
app.add_config_value('mathjax_path',
'https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.7/latest.js?'
'config=TeX-AMS-MML_HTMLorMML', 'html')
'https://cdn.jsdelivr.net/npm/mathjax@3/es5/tex-mml-chtml.js',
'html')
app.add_config_value('mathjax_options', {}, 'html')
app.add_config_value('mathjax_inline', [r'\(', r'\)'], 'html')
app.add_config_value('mathjax_display', [r'\[', r'\]'], 'html')
Expand Down
4 changes: 2 additions & 2 deletions tests/test_ext_math.py
Expand Up @@ -71,8 +71,8 @@ def test_mathjax_options(app, status, warning):

content = (app.outdir / 'index.html').read_text()
assert ('<script async="async" integrity="sha384-0123456789" '
'src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.7/latest.js?'
'config=TeX-AMS-MML_HTMLorMML"></script>' in content)
'src="https://cdn.jsdelivr.net/npm/mathjax@3/es5/tex-mml-chtml.js">'
'</script>' in content)


@pytest.mark.sphinx('html', testroot='ext-math',
Expand Down