Commit graph

81 commits

Author SHA1 Message Date
Thiemo Kreuz a429c8cc35 Fix escaping issues and a series of unrelated code cleanups
Actual changes:
* Let the special page accept the subpage parameter, e.g.
  [[Special:MathWikibase/Q6203]].
* Fix some of the message escaping issues in SpecialMathWikibase.
  Messages that are just plain text and not supposed to contain any
  parameters, wikitext, HTML, or something like this should be
  properly escaped, either via Html::rawElement( $msg->escaped() ) or
  better Html::element( $msg->plain ). The later approach is cheaper.

Other code cleanups that don't affect production:
* Reduce the amount of duplicate code in SpecialMathWikibase.
* Make use of the preg_match() return value.
* Remove default parameters from parent::__construct() call.
* Remove some auto-generated comments.
* Remove some comments that don't add new information, but just repeat
  what the code already says.
* Make use of PHPUnit's assertCount().

We can split this patch into smaller patches, if you prefer. This
should especially be done if one of the changes is controversial, to
not block the other changes. Please tell me.

Change-Id: I8c20014435af3d2ac9c7381fe5fd00b9fe49b2c2
2020-03-21 14:53:15 +00:00
Umherirrender 73a3f662b4 Start showing warning for deprecated PHP entry point
Change-Id: I7c37e6eb6b7c802fa1e4ebaca2752247ba4d3b8c
2018-10-26 20:51:49 +02:00
paladox df8ad1c799 Add php code sniffer to composer
Add support for php code sniffer

Change-Id: I7dcdd88be4f1f8219f71ab770979284761e09bae
2015-09-23 10:46:14 +01:00
physikerwelt bc52c77d24 Use extension.json, empty PHP entry point
* Use string constants instead of integers
* Derive new names from old via conversion of constant
  naming convention to CamelCase.
* Replace old constant string e.g. 'MW_MATH_ABC_DEF'
  with new string 'abcDef'
* Replace old constant value with new string.
* Tests to demonstrates what is actually done.
* Rename constants

Bug: T106630
Bug: T106631
Bug: T87941
Change-Id: I6d1094ece79e912d9ddbef6681a25196c7a6e801
2015-07-30 22:01:20 +00:00
jenkins-bot f3adeebb19 Merge "Remove client-side MathJax support" 2015-07-19 19:44:54 +00:00
physikerwelt 1157896149 Remove client-side MathJax support
Bug: T99369
Change-Id: I767dd2720386221891f25b5c692b766b4708be15
2015-07-16 00:46:29 +00:00
physikerwelt 5c12ed983f Remove useless debug functionality
* MathDebug was intended to provide advanced debugging functionality
  for the math extension. However, the interesting debugging and
  logging feature never made it from the debug branch to the master.
* The current debug functionality is mostly useless. Only some values
  are written to memory and never used thereafter.
* This change moves the existing functionality to the MathSearch
  extension and introduced the required hook for that.

Details:
* $wgMathDebug is removed
* A new Hook MathRenderingResultRetrieved is created
* The math rendering object is printed to the svg error
  page if wgDebugComments is active (instead of wgMathDebug)

Change-Id: I6fad69b5d9b9ca8a7d12c7e410d3ae6180fbddbf
2015-07-14 10:34:37 -04:00
physikerwelt c36c9d7fb4 Add mathtex as default to the LaTeXML options
LaTeXML printed out the original input tex as xml annotation.
This behaviour was changed recently. This changed adjusts the
defaults in the same way as it was done in the LaTeXML internal
templates. See 
https://github.com/brucemiller/LaTeXML/commit/a7e2e86

Change-Id: I4f4551a46d0724c36a5a3b4fb7bf9c7ae7af63ca
2015-06-04 07:51:53 +00:00
paladox 452cf371e8 Remove i18n shim
Change-Id: I61dc6d4f6a179b4a0252d217bad0d26a3e2f1c25
2015-05-26 10:35:06 +00:00
umherirrender 2da1a33649 Replace deprecated $wgSpecialPageGroups
$wgSpecialPageGroups is deprecated since 1.21
override SpecialPage::getGroupName instead

Change-Id: I7540d2d607caba45ce311b0dafa2a6642412c57f
2015-05-16 12:37:42 +02:00
Gilles Dubuc 78ed6a32af Explicitly define module position
Style modules currently added through addModuleStyles default
to being in the head ("top" position). This is an unhealthy default,
since only critical styles that are needed at pageload should be
in the head. In order to be able to switch the default to "bottom",
existing module positions have to be defined explicitly.

Bug: T97410
Change-Id: I39e3388de260bb91506fb9e6f1092f6284d13d0e
2015-04-28 16:03:34 +02:00
physikerwelt (Moritz Schubotz) 6889086753 Move integration tests to a new special page
The integration tests depend on the presence of external servers
and the user settings.
First, people are bothered by  failing test due to problems with
those servers and second, administrators need to run phpunit tests
to verify the configuration settings.
Therefore, we move the integration tests to a special page.

Bug: T87389
Change-Id: If66f13fe7fa16868cd4b1d8f0e0a6e3d49448b27
2015-03-30 11:47:31 -04:00
Ed Sanders da0e6cab16 Fix rendering issues in MathML mode
Force display:none on a hidden MathML rendering to avoid generating
focusable node highlights.
Move adding of class to setup to ensure it persists after render.

Bug: T87007
Change-Id: I5fc21afa61ccc07e9d2126846cf29ee898182a7c
2015-01-29 14:15:45 +00:00
jenkins-bot 865bc6d2a4 Merge "Add dependency on mediawiki.toolbar" 2015-01-22 21:55:50 +00:00
Timo Tijhof 83da0338ec Minor clean up, optimisations and documentation corrections
* Handle-error-first approach for consistent function body
  termination at the root with the main intend, and less indention.

* __DIR__ instead of dirname( __FILE__ )

* Single quotes.

* Correct pickHost documentation: wgMathMathMLUrl is not an array,
  and is not used in this method, that's at a different level
  of abstraction (via the constructor).

* White spacing.

* require_once is not a function.

Change-Id: Id4bec8415893245e2569a39ab5406a0820238ae4
2015-01-22 10:56:16 -08:00
physikerwelt (Moritz Schubotz) 0fd785b7d9 Add dependency on mediawiki.toolbar
Follows-up Ibcda91bbb164b0.

ext.math.editbutton.enabler uses mw.toolbar. The toolbar interface
used to be part of mediawiki.action.edit but is now in its own module.

Bug: T86235
Change-Id: I37a0b8e84a9bd6a0de0386d5b9924bbbbbd7249c
2015-01-22 01:18:18 +00:00
Ed Sanders 4ae01c7f5a Make main code input area monospaced
A monospaced font is more suitable for writing LaTeX.

Change-Id: I1a6c7bbbe3618f43808be15eab1579de8b2ad59f
2015-01-16 12:07:31 +00:00
Ed Sanders 70573daa0b Add support for display and ID attributes to VisualEditor
Change-Id: Ie65ff26c9e214f74b0217238a3def2242505d4c2
2014-11-24 19:24:06 +00:00
Frédéric Wang e26d641b85 Make MathML mode work on mobile devices
- load ext.math.css on mobile devices
- move the @font-face rules for the Latin Modern WOFF fonts into a separate
  Desktop-only stylesheet.

Change-Id: Ifca3679185a4675bc31dff99a086fef740b9dab5
2014-10-20 22:40:53 +02:00
Gabriel Wicke c61b8becac Use radio buttons only for math mode selection
While the combination of all redering modes, might
be useful for some power users it will confuse the
average user and makes bug reporting harder.

Therefore, source rendering on the server side is
used when MathJax is enabled on the client side.

Change-Id: I05a20d7c2298115dbf0429db6c107e8132cc15ff
2014-10-13 09:42:37 +02:00
physikerwelt (Moritz Schubotz) ccc4114812 Fine grained options for wgMathDisableTeXFilter
Add new option to filter only new input.
Now the complete list of possible settings is:
MW_MATH_CHECK_ALWAYS  backwards compatible to false
MW_MATH_CHECK_NEVER   backwards compatible to true
MW_MATH_CHECK_NEW     new option

Change-Id: I455b41c8b8d918f4c34f6c115194d227a8394e0a
2014-10-10 18:27:04 +00:00
Frédéric Wang c3894c2c49 Display MathML when MathPlayer is installed
When MathPlayer is installed, we show the MathML instead of the SVG fallback.
This will in particular allow the sync highlighting feature of MathPlayer.
This also introduces a module ext.math.js that could be used to do some
Javascript postprocessing.

Bug: 71748
Change-Id: I438a20032c312d12321ca4c5686bcfd107656b37
2014-10-10 20:20:47 +02:00
Frédéric Wang 639d8a766f Separating MediaWiki specific files from MathJax module
This commit separates the files wiki2jax.js and texvc.js from the
MathJax modules. This allows for MathJax updates without affecting
MediaWiki files. It also defines the MediaWiki path configuration,
although this will really only be usable in MathJax 2.4. Finally,
it fixes jshint errors in texvc.js and wiki2jax.js

Moved texvc.js and wiki2jax.js to extensions/Math/modules/mediawiki-extensions directory

Change-Id:  I97d68c0555bc9fbdd6bf42912aa249d57b3d9359
2014-08-29 21:03:41 +02:00
Physikerwelt 7f6db28dd6 Revert "Added a hook for modifications to MathJax"
This reverts commit 0a8fbac418.

Change-Id: If4442d07e4d82e1f45211bb2b331221c62fadbb8
2014-08-19 19:13:35 +00:00
Translation updater bot 0a8fbac418 Added a hook for modifications to MathJax
The signal 'ext.math.mathjax.customize' is added to the
mathJax.Init function. Extensions can call this signal for
modifications to MathJax.

Change-Id: Ia2bae50cd1fcd15d4775d7b9666679c477060659
2014-08-19 11:07:57 -04:00
physikerwelt (Moritz Schubotz) 8f7d4b8d75 Update version number to 2.0
Change-Id: If0d6ba5093bb6f89970b9febeadcbfd6bd9c6cfa
2014-07-20 15:28:54 +02:00
Amir E. Aharoni 056b6de1b2 Add Moritz Schubotz and Derk-Jan Hartman as authors
Change-Id: Ia091b88098777a953a9fa285d93641762d007379
2014-07-19 22:35:41 +00:00
Ed Sanders 7c08fc5b72 Migrate VE icon from VE extension
Removed from VE with Ic8074be2.

Change-Id: I33cdb6204b4abc44398ecedd65f7d9251e73e9b0
2014-06-21 14:52:16 +00:00
Ed Sanders e0a7cdf26d Remove display:inline-block highlight hacks for math nodes
With getClientRects these are no longer necessary.

Depends on I09f1c0850 in VE core.

Change-Id: I2c4c1809a92c6d2cbf6769782f7595a508d823ea
2014-06-16 14:48:29 +01:00
Ed Sanders 1678136fe3 Add in CSS file missing from RL module
Change-Id: I5311157b2a443c285a4125b1e457936030da3c4b
2014-06-13 20:27:21 +00:00
physikerwelt (Moritz Schubotz) cbbf5453d1 Enable MathML rendering mode
This change allows to registered users
to test the new MathML rendering mode.
Invalid settings for math rendering mode
will default to MathMathML.

Change-Id: I75f24cb762609d6728247e3758fcc18f2ebfc6e6
2014-06-11 13:21:34 +02:00
physikerwelt (Moritz Schubotz) 04ce4a02c7 Add options to the math tag
* id: Allows to name equations
  and deep link to equations
* forcemathmode: Allows to override the user defined rendering mode.
  This feature is useful for help pages and discussions about rendering.
* type: support for MathML and asciimath input
  required for MediaWiki instances that want to
  incorporate MathML sources like for instance pubmed

Change-Id: I615c7f1a5762e9e662937b70953fb873309d4c07
2014-06-10 20:19:12 +02:00
physikerwelt (Moritz Schubotz) 8bc23cafb4 SpecialPage for MathImages
Add new special page that displays
math images. (Either SVG- or PNG-Images)

Change-Id: I6065b474b8197232fcb4e79ae17bb08d9bef3ac4
2014-06-06 17:18:30 +02:00
jenkins-bot b71cedd915 Merge "Introduce variables required for mathoid" 2014-06-05 09:39:33 +00:00
physikerwelt (Moritz Schubotz) 1bb3bfa3b5 Introduce variables required for mathoid
This change prepares the reactivation of the
MathML rendering mode. It adds configuration
variables for
* the mathoid server url
* the mathoid server timeout
* the debug mode.

Change-Id: I8a2bb9076e571d7769787aac3e863f65637ce553
2014-06-05 09:36:01 +00:00
physikerwelt (Moritz Schubotz) 52656990b4 MathMathML
The LaTeXML class contains some code that is
not specific to LaTeXML but to MathML.
This code can be shared between LaTeXML and Mathoid.
This change introduces a new class called MathMathML
and moves the shared code from the LaTeXML class to this
new class.

Bug: 65973
Change-Id: I50517ba83f9a0d2aa8e237f062f18e4319ddbac8
2014-06-05 09:06:33 +00:00
physikerwelt 3b7ea6413c Change default value for $wgMathLaTeXMLUrl
new LaTeXML instance.
Sponsored by https://www.xsede.org/

Cherry-Pick from Id92ef141c7921a82528b3ba4384e026322499312

Change-Id: Idd1de9da348d473acc6cea8d2d1a855f1f6b07fa
2014-05-09 11:06:39 +02:00
James D. Forrester 60411b9a9f Convert VisualEditor Beta Feature to a normal (non-optional) plugin
Change-Id: I0dd1c85ad92d7e42654e23b6237b30f8f4dfe0fa
2014-04-29 13:34:40 -07:00
Moritz Schubotz (Physikerwelt) 75999d5aae Add default value for user option mathJax
Bug: 63915
Change-Id: I9aa0b1c9a3f09c412f14756ffd251957b7777a47
2014-04-21 09:30:13 +00:00
Moritz Schubotz (Physikerwelt) 3a36b25ee3 Fix: Allow <div /> as valid Math output
Some simple math tags such as the rendering result of
$\mathcal{ABC}$
are converted to an HTML-div tag by LaTeXML if inline-mode
is used. This change
* makes the $wgMathDefaultLaTeXMLSetting easier to read
* improves the XML validation of the LaTeXML output.

Change-Id: I807dbfa3a45930deec8eb5615133be9a39f3f101
2014-04-08 16:13:28 +00:00
Moritz Schubotz (Physikerwelt) 58f913ecb0 $wgMathValidModes and orthogonal MathJax enabler
To adjust the selectable math rendering modes in user preferences $wgMathValidModes
is introduced.

* $wgUseLaTeXML becomes unnecessary use $wgMathValidModes[] = MW_MATH_LATEXML;
  to enable the LaTeXML rendering mode
* add $wgMathValidModes[] = MW_MATH_MATHJAX; to enable MathJax

Currently, MathJax is bound to the MW_MATH_SOURCE rendering mode.
This change makes the base mode user configurable.
That means before MathJax is loaded the png fallback image could
be displayed.

ATTENTION: This change modifies global variables as follows:
* MW_MATH_MATHJAX is deprecated.

Bug: 57981
Change-Id: Ibf705cb66754d04e4c7eafd1e98608b25d7dbb94
2014-04-08 15:29:42 +00:00
Frédéric Wang b9353836c5 Add mathchoice.js to the 'TeX' module
mathchoice.js is necessary for the \mod command. This patch includes it
in the TeX module, so that it is included by ResourceLoader.

Bug: 63621
Change-Id: I624358baee04d396207e87ab81b47718573ea3b3
2014-04-07 22:34:01 +00:00
Derk-Jan Hartman 23f94d5b6a Add dependency for math edit button
Declare that ext.math.editbutton.enabler depends on
mediawiki.action.edit.

Follow up to: I3d126c1c252c27fa65ab8fb42ffab66a2d99cfa8
Bug: 60471
Change-Id: Ibcda91bbb164b0b896d4c3f5f7c2c6ea6658468e
2014-04-07 13:15:02 +00:00
jenkins-bot ea48a4442f Merge "Editbutton for math" 2014-04-07 09:33:56 +00:00
Moritz Schubotz 9f7a1e51c4 Editbutton for math
Move the code that creates the Editbutton for math from core,
where it is removed in Ib17aa47c7d647e1ed293541adbdd1aa77e25e59e.

Imported button image from:
ssh://gerrit.wikimedia.org:29418/mediawiki/core.git/skins/common/button_math.png

We don't need to vary the icon per language, because there is not a
single language that has a non default icon.

Bug: 60471
Change-Id: I3d126c1c252c27fa65ab8fb42ffab66a2d99cfa8
2014-04-07 09:26:16 +00:00
Moritz Schubotz (Physikerwelt) c5b0b15d8f Fix MathJax centers equations
* Removes the MathJax heuristics that decides
  if equations are centered or left-aligned.
* Introduces the attribute display to specify
  if the math element is rendered in inline,
  display, or inline-displaystyle.
* add css rules for display / inline math images

Bug: 61051
Change-Id: Iba69903f781f0cb1606b8ddcffb90fb86c9b229b
2014-04-06 21:58:30 +00:00
Derk-Jan Hartman 24f2ed2c5e Add the TeX color extension back
The color and the cancel extension was not RL'ified in the update
to MathJax 2.3

Followup to: I9471b1baf41d2bcc4fdc64a26e7d806e92b9b17f
Bug: 63574

Change-Id: I816db6b66ef48a90e7424372783c69ffe8343957
2014-04-05 18:01:15 +02:00
Siebrand Mazeland 5cbbd0c807 Migrate to JSON i18n
Procedure per https://www.mediawiki.org/wiki/Manual:GenerateJsonI18n.php
with shim.

Change-Id: Ifcaf0e8516cd92587fc5e51a580a53f4158cdb6e
2014-03-28 11:06:06 +01:00
Roan Kattouw fcf045f832 Add VisualEditor support
Moved from the VisualEditor extension, where it was removed in Iab0c56246626de1e0f

Change-Id: I8e582ee6deadc2750d30b49f0c6de31ed9c16a50
2014-03-20 01:29:25 +00:00
physikerwelt 94b035b26a Coverage tests for the Math extension
* Include generated tests for a better test coverage
of the Math extension.
* Compiles texvc in testsuite (if required)
* Test generator now included
* Replaces the old parser tests
* Fixes whitspace issues

Bug: 61090
Change-Id: Iff7eeb5ee72137492c3f6659e4d4d106e5715586
2014-03-11 15:35:07 +00:00