.. _ThirdParty:
***********************************
Third-party Extensions
***********************************
MathJax can load extensions (and configurations) from arbitrary locations.
This allows authors and developers to easily integrate custom code.
Custom extension path configuration
----------------------------------------
Usually, third-party extensions have to be specified with their full
paths (and matching ``loadComplete`` calls); this limits portability. To
simplify this process, the MathJax configuration can include (possibly
multiple) third-party locations for easier reference.
To specify the URL, set ``MathJax.Ajax.config.path["Extra"]`` in your
configuration file, for example,
.. code-block:: html
or equivalently,
.. code-block:: html
Configuring this path will allow you to load extensions using the ``[Extra]``
prefix. To continue the example, the following configuration would then load
``http://my.extra.com/mathjax/extra/spiffy.js``.
.. code-block:: javascript
MathJax.Hub.Config({
extensions: ["[Extra]/spiffy.js"]
});
Note that the extension's ``loadComplete`` call needs to match this path,
i.e., ``spiffy.js`` should end with
.. code-block:: javascript
MathJax.Ajax.loadComplete("[Extra]/spiffy.js");
MathJax Third-Party extension repository
----------------------------------------
We collect a list of third-party extensions on Github at `github.com/mathjax/MathJax-third-party-extensions
`_. This repository
allows developers to publicize their custom extensions easily.
.. note::
The mirrored copy on the MathJax CDN at `cdn.mathjax.org/mathjax/contrib/
/cdn.mathjax.org/mathjax/contrib/>`_ has been retired alongside the MathJax CDN.
.. note::
You can disable the ``[Contrib]`` path by loading MathJax with
``noContrib`` in the query string, e.g., ``MathJax.js?config=...&noContrib``