We use the checked version of the TeX string and
not the original user input string to ensure that
the layout is the same and no mediawiki specific
macros such as \reals is needed to render the alt
text with a regular LaTeX installation.
Bug: T136915
Change-Id: I40cdf4ec49a4d071773af6943dbe101b8d41ed87
When the user specifies the mathpurge=true query parameter, the Math
extension needs to prompt RESTBase to regenerate the renders for all
formulae on the page and consequently issue Varnish purge requests. This
behaviour is achieved by including the `Cache-Control: no-cache` header
when requesting a render. Since RESTBase regenerates all of the renders
when it receives the header, send it only for the first content request;
if subsequent content requests are made, RESTBase will already have the
new renders.
Bug: T136205
Change-Id: I44482ccc1d8afdf6d40dcf8965d8debe83ef7e17
Display the error message on the screen,
but do not throw an exception.
The extension will be available from the error log.
Bug: T134652
Change-Id: I5e88e74df6cd534d138d65251615066bab663368
It was reported that under certain circumstances a semicolon was
missing from the SVG style.
Bug: T132563
Change-Id: I148433657848fdc74889fcaf6d883078c46a4006
The signature of the Hook function is not respected.
Thus parameters need to be passed by reference explicitly.
For syntax validation to pass, this requires
mediawiki-codesniffer to 0.6.0
Change-Id: I90b6501000200c1b462407b769113358eb5c762f
This change reduces the number of Restbase requests to two
by bundling all requests for MathML
Bug: T132096
Change-Id: Idfc29eeeca754738fe78ca0372e6b6725065528d
* Add support for LaTeX package mhchem.
* Add hook <ce>
* Add format <math chem>
See bug description for the details.
Bug: T98306
Change-Id: I2ab80834edc5d071618bc52f133cfb2b7ece5016
Currently two post request and one get request is sent
for each formula.
This change gets rid of the second post request.
Change-Id: I805a2c0fa619c9143c38a0cc60e76c9480578ed3
* 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
* Currently the Math extension stores the rendering result from restbase
in the database.
* This creates unnecessary write operations on the database
Change-Id: I5f07474fbf8017e39e94ac2b17676db1c3e92e72
* For tex input, the only form of Math input that
is accepted on WMF wikis, we retrieve MathML and SVG
image from Restbase without using the database cache.
Change-Id: Ief1b6345c17db41f92684e00233d57240e97599f
Redo Ibf6bdbd4ea36b4905445d5878f32f7e0b2bc8bac, which was
reverted by I029328849f05ec2afcabf38d2b79b337cb54cbd5.
In addition this patch simplifies the tex sent to the mathoid
server. Instead of {\displaystyle {\textstyle ... } } only
{\textstyle is sent (which overwrites \displaystyle anyway).
Change-Id: I16d6f67215c2f85ecd1d3a0bddacfc1700681557
The style information for the fallback image is quite sophisticated
and should not be changed.
Bug: 72626
Change-Id: I553cf7209d87517b8c8841cc25df74ebd4c683f4
* 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
* This problem was introduced in
I6fad69b5d9b9ca8a7d12c7e410d3ae6180fbddbf
* The $render variable is undefined in that context
* $this should be used instead
Change-Id: I70e0a03e41f0312a458d1dd27b766452ae093093
* 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
In some cases the SVG property of the mathoid JSON result
seems to be empty.
In that case we ignore the SVG rendering.
Bug: T87379
Change-Id: I98398ec59e1d0205ee32cca137ad29dbc9dddec9
- We don't localize errors and debug logs like this, it makes them
impossible to decipher
- Also remove some 1.21 and below back-compat while we're here
Change-Id: Idb23fe5b434fa9fa3518672d57ec6e5466d005ac
MathMathML::renderingRequired called the getSvg
function in MathLaTeXML that caused an automatic
rerendering of the SVG image if it was not cached.
That this rendering is triggered from the function
renderingRequired is contra intutive and should be
avoided.
Change-Id: Ifa14f50193a05b3058624a18974c56897fcec09e
* 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
Chrome in particular would end up with fairly small and inconsistent
background sizes when using background-size: contain;. This makes sense
according to the docs at
https://developer.mozilla.org/en-US/docs/Web/CSS/background-size, which
doesn't specify that the background actually has to fill the entire element.
background-size: 100% 100%; does force full-size scaling, which is what we
want. Verified to work as expected in Chrome 38 on Linux.
Change-Id: I508e08dac1480491efcd1d27cfac16187bfbd4fe
HTML tidy will strip empty spans, so don't use one for the fallback image. We
use a meta element instead, as that does not normally render at all & doesn't
have any default styling coming with it.
Change-Id: I5bcbbc9468433e3c8722c09ce813a6f5ac741333
- Use span with a background-image instead of <img> for the fallback SVG so
that they don't load in Gecko.
- Make the image fallback a span inline-block so that it can have a dimension.
Bug: 71929
Change-Id: I7f820cd5766db1fece452ebfc72915a55e42c82e
- Merge fallback-svg and fallback-png into one fallback-image class.
- Move the vertical centering of PNG to MathTexvc and ext.math.js.
- Remove "img" from ext.math.css to reduce CSS specificity and make
style easier to override by user stylesheets.
- Add a comment about the !important rules for centering in
display mode.
- Only load ext.math.scripts in MathML mode.
Bug: 71955
Change-Id: If8ee1cf6453257a0a2f6aa186d4007954a8e5d8e
- Remove the special handling for the PNG fallback in
getFallbackImageUrl, getFallbackImage and getClassName.
- Make these functions private and remove useless parameters.
Bug: 71912
Change-Id: I569f2dd3d32a0c9690a5d9674a1c6ae0b8698f08
- remove the default "display: none" style on the SVG fallback
- remove the IE CSS hacks from ext.math.css
- add a client-side implementation of the PNG fallback
Bug: 71912
Change-Id: I91b11313aae25c4d05f8f2333d2f21537c9b8887
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
- These images currently return server errors
- We don't really want to load PNG images for browsers that support MathML or
SVG.
Bug: 69702
Change-Id: Idd339623efd19a0726b43a6c4adc2fcd832511f6
- Mark the png and svg fallback as aria-hidden="true".
- For browsers without good enough MathML visual rendering,
hide the <math> tag in a way that still makes it accessible to
screen readers.
Bug: 66537
Change-Id: I7ecf07a4da669d927e11265fd497a813786c6410
Use the cached function isInDatabase rather than readFromDatabase to
avoid unnecessary read operations on the database.
Currently, readFromDatabase is usually called only once during instance
livetime. But after I455b41c8b8d918f4c34f6c115194d227a8394e0a has bben
merged chances are that it's called twice.
Change-Id: I6434195ad1d323a578a8fdca1b4555e11ab30a15
Currently the error reporting in MathML mode is
misleading.
The old error message suggested that the MathML
produced is not well formed.
This change displays the actual error
message occurred during the conversion process.
Change-Id: I6a8201107f9280f0cba97509f19b97d8e248c99f