Math library for MediaWiki (patched)
Go to file
lyrianos93 946a18d14c Implement datatype 'Math' for Wikidata
This change implements all components to use the datatype 'Math' in Wikidata.
Because 'String 'is used as value type, only the Formatter and Validator are needed to be implemended.

The components are:
* hooks
* Formatter class
* Validator class
* Test cases

Bug: T67397
Change-Id: Ic64fd6c8560f48052e2db24ae1f013d48a82b5e9
2016-01-11 22:29:29 +00: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-26 21:09:51 +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 Begining -> beginning 2015-12-11 18:37:10 +00:00
mathoid Separate Mathoid from the Math extension 2014-02-10 18:28:08 +00:00
modules Merge "Force Ace Editor to resize after the dialog has been rendered" 2015-12-20 12:57:58 +00:00
tests Implement datatype 'Math' for Wikidata 2016-01-11 22:29:29 +00:00
texvccheck Begining -> beginning 2015-12-11 18:37:10 +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 Update mediawiki_selenium Ruby gem to the latest version 2015-12-17 12:58:34 +01:00
Gemfile.lock Update mediawiki_selenium Ruby gem to the latest version 2015-12-17 12:58:34 +01: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 Logging: adjust the log entry levels 2015-12-15 00:14:15 +01: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
MathFormatter.php Implement datatype 'Math' for Wikidata 2016-01-11 22:29:29 +00: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 Merge "Ask for the MathML and SVG renders only if the input is valid" 2015-12-14 22:40:38 +00:00
MathRenderer.php Logging: adjust the log entry levels 2015-12-15 00:14:15 +01:00
MathRestbaseInterface.php Logging: adjust the log entry levels 2015-12-15 00:14:15 +01:00
MathSource.php Add php code sniffer to composer 2015-09-23 10:46:14 +01:00
MathTexvc.php Logging: adjust the log entry levels 2015-12-15 00:14:15 +01:00
MathValidator.php Implement datatype 'Math' for Wikidata 2016-01-11 22:29:29 +00:00
MathWikidataHook.php Implement datatype 'Math' for Wikidata 2016-01-11 22:29:29 +00: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 Implement datatype 'Math' for Wikidata 2016-01-11 22:29:29 +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-12-29 11:40:27 -08: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' );