Math library for MediaWiki (patched)
Go to file
physikerwelt 1ec767791b Make math usable without RESTbase
* Do not contact RESTbase in texvc rendering mode and
  use the well established tex checking that is already build
  into texvc.
* Do not use RESTbase in LaTeXML mode.

Background:
In I1982612e8c6a356e3dbdf447724ac82e5968cc77 RESTbased replaced
texvccheck that was a derivate of texvc designed for people
that wanted to use secure MathML rendering using mathoid.
The integration of mathoid to restbase made this feature obsolete.
However, texvccheck was not only used to check the latex input
that was sent to mathoid, but also the string which was sent to texvc.
Since texvc has already build in tex checking this is not
required and does not improve security.
Finally, users updating from old versions of the math extension
(prior to 2014) that do not have textexvccheck installed,
do not need to compile the texvccheck binary after this change.

PS5: Also treats the case where VisualEditor is not installed.

Bug: T121173
Change-Id: I1bd076b09206869b5ed75280d22e1b36bfb8d8ad
2015-12-11 22:04:12 +01:00
db Increase size of the math_mathml in the mathlatexml table 2014-11-18 12:42:27 +01:00
i18n Localisation updates from https://translatewiki.net. 2015-12-10 22:56:12 +01:00
images Resolve problems on SpecialPage:MathStatus 2015-11-10 12:55:19 +00:00
maintenance Add php code sniffer to composer 2015-09-23 10:46:14 +01:00
math Regularize spacing in `texvc` and `texvccheck` 2014-10-12 22:04:41 +02:00
mathoid Separate Mathoid from the Math extension 2014-02-10 18:28:08 +00:00
modules Focus the math dialog input after the symbols promise has returned 2015-12-08 13:26:34 +00:00
tests Use RestBase to check input tex rather than texvccheck 2015-12-03 09:03:43 +00:00
texvccheck Fix perl script permissions and shebang 2015-07-01 13:27:22 +00:00
.csslintrc build: Add csshint, jshint and jscs to math extension 2015-09-14 22:28:15 +00:00
.gitattributes Update to MathJax 2.3 2014-01-27 21:36:02 +00:00
.gitignore Add Restbase interface 2015-12-01 21:10:09 +00:00
.gitreview Adding .gitreview 2012-03-23 10:30:45 -07:00
.jscsrc build: Add csshint, jshint and jscs to math extension 2015-09-14 22:28:15 +00:00
.jshintignore Adding mathoid as tex to MathML and SVG renderer 2013-10-04 17:03:34 -07:00
.jshintrc Make math dialog with clickable list of formula fragments 2015-11-23 16:30:38 -08:00
.rubocop.yml Fixed Style/StringLiterals RuboCop offense 2015-09-22 10:18:13 -07:00
COPYING Add COPYING 2014-03-01 16:15:39 +00:00
Gemfile Fixed Style/StringLiterals RuboCop offense 2015-09-22 10:18:13 -07:00
Gemfile.lock Updated RuboCop to the latest version 2015-09-22 10:18:13 -07:00
Gruntfile.js Rename modules/VisualEditor to modules/ve-math 2015-09-17 15:10:30 +00:00
HISTORY Use extension.json, empty PHP entry point 2015-07-30 22:01:20 +00:00
Makefile Makefile in root directory 2014-01-28 20:55:48 +01:00
Math.alias.noTranslate.php Add php code sniffer to composer 2015-09-23 10:46:14 +01:00
Math.alias.php Add Persian special page alias 2015-08-22 17:14:38 +00:00
Math.hooks.php Add Restbase interface 2015-12-01 21:10:09 +00:00
Math.php Add php code sniffer to composer 2015-09-23 10:46:14 +01:00
MathDataModule.php Make math dialog with clickable list of formula fragments 2015-11-23 16:30:38 -08:00
MathInputCheck.php Add php code sniffer to composer 2015-09-23 10:46:14 +01:00
MathInputCheckRestbase.php Make math usable without RESTbase 2015-12-11 22:04:12 +01:00
MathInputCheckTexvc.php Add php code sniffer to composer 2015-09-23 10:46:14 +01:00
MathLaTeXML.php Add php code sniffer to composer 2015-09-23 10:46:14 +01:00
MathMathML.php Make math usable without RESTbase 2015-12-11 22:04:12 +01:00
MathRenderer.php Make math usable without RESTbase 2015-12-11 22:04:12 +01:00
MathRestbaseInterface.php Make math usable without RESTbase 2015-12-11 22:04:12 +01:00
MathSource.php Add php code sniffer to composer 2015-09-23 10:46:14 +01:00
MathTexvc.php Make math usable without RESTbase 2015-12-11 22:04:12 +01:00
README Use extension.json, empty PHP entry point 2015-07-30 22:01:20 +00:00
RELEASE-NOTES-3.0.0 Add release notes for version 3.0.0 2015-07-25 22:01:48 +01:00
Rakefile Added Rakefile 2015-11-09 17:50:54 +01:00
SpecialMathShowImage.php Add php code sniffer to composer 2015-09-23 10:46:14 +01:00
SpecialMathStatus.php Resolve problems on SpecialPage:MathStatus 2015-11-10 12:55:19 +00:00
composer.json Add phpcbf script to fix whitespace problems 2015-11-27 23:59:27 +00:00
extension.json Bump version to 3.0.0 2015-12-08 23:13:30 +00:00
mathParserTests.txt Coverage tests for the Math extension 2014-03-11 15:35:07 +00:00
package.json build: Updating development dependencies 2015-10-11 11:51:01 -04:00
phpcs.xml Update mediawiki-codesniffer and parallel-lint settings 2015-09-29 02:19:04 +02:00

README

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'] = array( 'level' => 'info', 'destination' => '/path/to/file.log' );