So far, rare render errors caused by blips in the network or the mathoid
service produce a big red warning in the page, and cause a tracking
category to be added. The rendered content along with the error message
is cached normally, which means that temporary errors are persisted
indefinitely.
As a consequence, editors need to periodically perform null edits to
remove temporary render errors from caches. T136812 documents a history
of this.
This patch aims to improve error handling through two changes:
1) Limit caching of rendered content to 10 minutes. As a consequence,
temporary render errors should clear themselves up fairly quickly,
eliminating the need for manual follow-up. The 10 minute timeout was
chose as a compromise between relatively timely cleanup, and limited
load from re-renders after math trouble.
2) Track render errors in a dedicated category. This avoids mixing
syntax errors with temporary render errors, which should make cleanup
efforts a lot simpler.
Bug: T136812
Change-Id: If7537ed9117fb736a09f4396b7d55d774ce9674f
This version (for MediaWiki 1.19) has some changes since previous versions:
* rendering options have been reduced to just 'Always PNG' and 'Leave it as TeX'
** all other rendering options will merge to PNG.
* initial experimental support for integrating MathJax client-side rendering
See the README in the math subdirectory for more info on setting up the
low-level conversion tools.
See the README in the texvccheck subdirectory for more info on setting up the
security checking tools for MathJax and LaTeXML.
MathML support:
If you prefer MathML rather than images you can use LaTeXML to convert the
math tags to MathML. To use that feature you have to enable LaTeXML by setting
$wgMathUseLaTeXML = true;
It is possible to choose LaTeXML as default option (for anonymous user) by setting
$wgDefaultUserOptions['math'] = 'latexml';
in the LocalSettings.php file.
The LaTeXML option requires php5-curl to be installed. Without php5-curl no proper
error handling can be guaranteed.
Furthermore, a core version of wmf/1.22wmf7 or newer is recommended.
Otherwise, errors in LaTeXML can lead to mal-formatted XML output and disturb the
page layout.
MathJax configuration:
Client-side configuration of MathJax can be done by specifying a mathJax.config
table, which takes a table as described in:
http://docs.mathjax.org/en/v1.1-latest/options/index.html#configuration
Example:
if ( typeof mathJax === 'undefined' ) {
mathJax = {};
mathJax.config = {
showProcessingMessages: true
};
}
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
php tests/phpunit/phpunit.php extensions/Math/tests/
from your MediWiki home path.
== Logging ==
The math extension supports PSR-3 logging:
Configuration can be dona via
$wgDebugLogGroups['Math'] = [ 'level' => 'info', 'destination' => '/path/to/file.log' ];