Go to file
Moritz Schubotz (physikerwelt) 11dc0e4b97 Add MathJax rendering option
When collecting user feedback regarding the native
rendering option on the German Wikipedia (T346795)
it became apparent that some power users aim for bigger
and bolder fonts and a more LaTeX-like layout.
MathML, however, aims to format math as an integral part
of the text with uniform fonts and spacing.

To match both user needs, this patch adds a new rendering
option that uses client-side MathJax (without a need for
restbase or mathoid).

* Adjust MathJax`s loader to be compatible with the mw loader
* Add new rendering mode
* Copy MathJax source to resource module as foreign repo

Bug: T354136
Change-Id: I1ecf9c77fefc3b0f717107d81979276023f6cb84
(cherry picked from commit 277663b822)
2024-06-24 00:03:07 +00:00
.phan build: Resolve MediaWikiNoEmptyIfDefined suppression 2024-02-14 22:04:53 +01:00
i18n Add MathJax rendering option 2024-06-24 00:03:07 +00:00
maintenance Declare properties statically 2024-04-06 21:03:00 +00:00
mathoid docs: Update links for Mathoid now it's moved to GitLab 2023-09-12 13:30:09 +01:00
modules Add MathJax rendering option 2024-06-24 00:03:07 +00:00
src Add MathJax rendering option 2024-06-24 00:03:07 +00:00
tests Add MathJax rendering option 2024-06-24 00:03:07 +00:00
.eslintignore Add MathJax rendering option 2024-06-24 00:03:07 +00:00
.eslintrc.json build: Update linters 2023-09-27 16:07:55 +01:00
.gitattributes Update to MathJax 2.3 2014-01-27 21:36:02 +00:00
.gitignore Rename TexVC in PHP to WikiTexVC 2023-11-24 16:41:30 +01:00
.gitreview Whoops, track not trace 2016-10-24 17:02:56 -07:00
.phpcs.xml build: Fix line indents 2024-03-10 22:46:31 +01:00
.stylelintrc.json build: Update linters 2023-09-27 16:07:55 +01:00
CODE_OF_CONDUCT.md Code of Conduct: Update link to use Special:MyLanguage (T202047) 2018-09-06 15:55:07 +00:00
composer.json build: Upgrade mediawiki/mediawiki-codesniffer to v43.0.0 2024-03-10 22:16:48 +01:00
CONTRIBUTING.MD docs: Update links for Mathoid now it's moved to GitLab 2023-09-12 13:30:09 +01:00
COPYING Add COPYING 2014-03-01 16:15:39 +00:00
extension.json Add MathJax rendering option 2024-06-24 00:03:07 +00:00
Gruntfile.js build: Run stylelint for less file 2024-04-02 01:30:03 +02:00
HISTORY Remove confusing version information 2023-11-22 11:25:06 +01:00
Math.alias.noTranslate.php Add special page and API endpoint that show information from math Wikibase items 2019-11-14 23:42:35 +09:00
Math.alias.php Add special page alias for Traditional Chinese (zh-hant) 2023-11-26 16:13:10 +08:00
package-lock.json build: Updating braces to 3.0.3 2024-06-15 07:32:30 +00:00
package.json build: Updating npm dependencies 2024-02-13 20:44:49 +00:00
popupRestRoutes.json Conditionally register popup RestRoute using ExtensionFunctions 2024-04-07 20:30:04 +00:00
README Update reference to tests/phpunit/phpunit.php 2023-07-02 18:27:24 +02:00
ServiceWiring.php Remove explicit DB access 2024-01-11 15:57:02 +00:00

The version for MediaWiki 1.31+ has some changes since previous versions:

By default the math rendering service from the Wikimedia Foundation located at
https://wikimedia.org/api/rest_v1/
will be used for math rendering.
Therefore php-curl is required.
cf. https://www.mediawiki.org/wiki/Manual:CURL

Consult https://www.mediawiki.org/wiki/Extension:Math for further information and advanced settings.

Attributes of the <math /> element:
attribute "display":
possible values: "inline", "block" or "inline-displaystyle" (default)

"display" reproduces the old texvc behavior:
The equation is rendered with large height operands (texvc used $$ $tex $$ to render)
but the equation printed to the current line of the output and not centered in a new line.
In Wikipedia users use :<math>$tex</math> to move the math element closer to the center.

"inline" renders the equation in with small height operands by adding {\textstyle $tex } to the
users input ($tex). The equation is displayed in the current text line.

"inline-displaystyle" renders the equation in with large height operands centered in a new line by adding
{\displaystyle $tex } to the user input ($tex).

For testing your installation run
composer phpunit:entrypoint -- extensions/Math/tests/phpunit/
from your MediaWiki home path.

== Logging ==
The math extension supports PSR-3 logging:
Configuration can be dona via
$wgDebugLogGroups['Math'] = [ 'level' => 'info', 'destination' => '/path/to/file.log' ];