commit 4ec3192904dd4364f61b8f1fe457cff034bb8653
parent badfa0b2352469c195fe74b671fac1c5aca6a881
Author: Frédéric Wang <fred.wang@free.fr>
Date: Tue, 17 Sep 2013 11:25:54 -0700
Merge pull request #577 from fred-wang/issue557
Issue557
Diffstat:
2 files changed, 41 insertions(+), 13 deletions(-)
diff --git a/unpacked/config/default.js b/unpacked/config/default.js
@@ -432,12 +432,15 @@ MathJax.Hub.Config({
//
// Controls whether mml2jax inserts MathJax_Preview spans to make a
- // preview available, and what preview to use, whrn it locates
- // mathematics on the page. The default is "alttext", which means use
- // the <math> tag's alttext attribute as the preview (until it is
- // processed by MathJax), if the tag has one. Set to "none" to
+ // preview available, and what preview to use, when it locates
+ // mathematics on the page. The default is "mathml" which means use
+ // the <math> tag as the preview (until it is processed by MathJax).
+ // Set to "alttext", to use the <math> tag's alttext attribute as the
+ // preview, if the tag has one. Set to "none" to
// prevent the previews from being inserted (the math will simply
- // disappear until it is typeset). Set to an array containing the
+ // disappear until it is typeset). Set to "altimg" to use an image
+ // described by the altimg* attributes of the <math> element.
+ // Set to an array containing the
// description of an HTML snippet in order to use the same preview for
// all equations on the page (e.g., you could have it say "[math]" or
// load an image).
@@ -445,7 +448,7 @@ MathJax.Hub.Config({
// E.g., preview: ["[math]"],
// or preview: [["img",{src: "http://myserver.com/images/mypic.jpg"}]]
//
- preview: "alttext"
+ preview: "mathml"
},
diff --git a/unpacked/extensions/mml2jax.js b/unpacked/extensions/mml2jax.js
@@ -29,8 +29,11 @@
MathJax.Extension.mml2jax = {
version: "2.2",
config: {
- preview: "alttext" // Use the <math> element's alttext as the
+ preview: "mathml" // Use the <math> element as the
// preview. Set to "none" for no preview,
+ // set to "alttext" to use the alttext attribute
+ // of the <math> element, set to "altimg" to use
+ // an image described by the altimg* attributes
// or set to an array specifying an HTML snippet
// to use a fixed preview for all math
@@ -181,13 +184,35 @@ MathJax.Extension.mml2jax = {
createPreview: function (math,script) {
var preview = this.config.preview;
if (preview === "none") return;
- if (preview === "alttext") {
- var text = math.getAttribute("alttext");
- if (text != null) {preview = [this.filterPreview(text)]} else {preview = null}
- }
+ var isNodePreview = false;
+ if (preview === "mathml") {
+ isNodePreview = true;
+ // mathml preview does not work with IE < 9, so fallback to alttext.
+ if (this.MathTagBug) {preview = "alttext"} else {preview = math}
+ }
+ if (preview === "alttext" || preview === "altimg") {
+ isNodePreview = true;
+ var alttext = this.filterPreview(math.getAttribute("alttext"));
+ if (preview === "alttext") {
+ if (alttext != null) {preview = MathJax.HTML.TextNode(alttext)} else {preview = null}
+ } else {
+ var src = math.getAttribute("altimg");
+ if (src != null) {
+ // FIXME: use altimg-valign when display="inline"?
+ var style = {width: math.getAttribute("altimg-width"), height: math.getAttribute("altimg-height")};
+ preview = MathJax.HTML.Element("img",{src:src,alt:alttext,style:style});
+ } else {preview = null}
+ }
+ }
if (preview) {
- preview = MathJax.HTML.Element("span",{className:MathJax.Hub.config.preRemoveClass},preview);
- script.parentNode.insertBefore(preview,script);
+ var span;
+ if (isNodePreview) {
+ span = MathJax.HTML.Element("span",{className:MathJax.Hub.config.preRemoveClass});
+ span.appendChild(preview);
+ } else {
+ span = MathJax.HTML.Element("span",{className:MathJax.Hub.config.preRemoveClass},preview);
+ }
+ script.parentNode.insertBefore(span,script);
}
},