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
1) Because enabling native MathML now requires special configuration steps
from the users, they can as well just check their math font setup. Hence we
remove the Web font fallback.
2) We then can actually just remove ext.math.desktop.css since no specific
style is necessary any more on desktop.
3) We also no longer need to add the Web font to the list of font-family on
the <math> element. We actually just remove the whole font-family rule so
that it is up to web engines developers & users to decide the best math font
to use (e.g. via the "Fonts for mathematics" option in the font preference
menu of Firefox).
Change-Id: I1818d288b0f28715a460e3163590e4d0374c42b4
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
In the early rendering phase the output of the math
extension should not be treated as wiki markup.
Bug: T129032
Change-Id: Idaabd835f04de6133824ce8db53e590af91b626c
* It turned out that parallel rendering causes problems
in the PNG rendering mode.
* This change disables parallel rendering for all
modes but MahtML for now.
Bug: T127738
Change-Id: Ie0f7b391e89f53bac3490203e060c10c21d5e312
* Add support for LaTeX package mhchem.
* Add hook <ce>
* Add format <math chem>
See bug description for the details.
Bug: T98306
Change-Id: I2ab80834edc5d071618bc52f133cfb2b7ece5016
Most info-level log entries are actually debug messages, which should
not end up in the production log by default, so adjust them.
Only the Mathoid-powered TeX check fail has been promoted to info so
that we can quickly identify such requests from pages.
Bug: T121445
Change-Id: I3736c59f6425d675befea9438182ee1cdebe5fc5
* LaTeXML has a feature to add automatic line breaks
* This change adds a new integration test
* Sets a default line length of 90
* add the additional display attribute 'linebreak' which
can be used to enable the feature
* mathoid support for line breaks will follow shortly
Bug: T106423
Change-Id: I029328849f05ec2afcabf38d2b79b337cb54cbd5
* 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
* 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
The type text allows text with maximum length of 64k only. Since the
MathML generated by LaTeXML is quite verbose this is too small for
some equations used at Wikipedia.
Bug: 73090
Change-Id: Id09ec6201f68efe63a439f6e85a53876d5c1e521
- 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
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
- 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
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
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
* Adds a new hook that is called after the rendering
this is required to keep the MathIndex up to date
for the MathSearch extension.
* The hook can be used for special modifications of
the output format.
Change-Id: I7b45b4398c10ffe75f481a82c149ba4f66820338
Currently the method render always returns
a html string that can be a string that
represents the correct result or a rendered
error message.
This change splits rendering and
fetching of the HTML output.
This simplifies the logic of the rendering
and caching mechanism.
Now the render method returns a boolean that
indicates if the rendering was sucessful or
not.
Step 2/2
Warning: Errors in this change might affect
caching logic and squid caches.
Change-Id: I00502b84212ed70cdf63bd69916a35afbd6fdbc1
This change improves the error handling for MathML.
* Make MathHooks::getMathNames public
* Allow to use the same error messages for LaTeXML and Mathoid
* unify the string delimiter in error messages to "
Change-Id: I6568e6a3c98cb008f45f887d42e446daafe0ed3c
Currently the PNG and the LaTeXML rendering mode
use a common table in the database. If both rendering
modes are allowed in a wiki simultaneously this causes
problems, because the fields are continuously overwritten.
This change creates the new database table defined in step 1.
Bug: 65522
Change-Id: I5f125d36b83776ca6f75ff014dc9095d0a737a35
If the LocalSettings.php has invalid settings
for $wgDefaultUserOptions['math']
and $wgValidMathModes the user prefrences
pages displays an error. This commit
catches this error and selects the first
rendering option availible.
Bug: 64844
Change-Id: I1e3c468c0dc92378f7dc7b7d81fb4693e70f6b6f
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
It's not really nice to have this lying around in the root of the
extension. Even if it's for beta, better to use a proper subdir, so the
directory is somewhat 'readable'
Change-Id: Ib6e6b27b2169626a4f9028fa0f772bbdab16a40c