/* -*- Mode: Javascript; indent-tabs-mode:nil; js-indent-level: 2 -*- */ /* vim: set ts=2 et sw=2 tw=80: */ /************************************************************* * * MathJax/config/MMLorHTML.js * * Chooses between the NativeMML and HTML-CSS output jax depending * on the capabilities of the browser and configuration settings * of the page. * * This file should be added to the config array when configuring * MathJax. Note that if you include this, you should NOT include * an output jax in the jax array (it will be added for you by * this file). * * You can specify the preferred output jax on a global or * browser-by-browser basis. To specify it globally, use * * MathJax.Hub.Config({ * MMLorHTML: {prefer: "MML"} // or "HTML" * }); * * To specify on a browser-by-borwser basis, use * * MathJax.Hub.Config({ * MMLorHTML: {prefer: { * MSIE: "MML", * Firefox: "MML", * Opera: "HTML", * other: "HTML" * }} * }); * * --------------------------------------------------------------------- * * Copyright (c) 2010-2013 The MathJax Consortium * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ (function (HUB,BROWSER) { var VERSION = "2.3"; var CONFIG = MathJax.Hub.CombineConfig("MMLorHTML",{ prefer: { MSIE:"MML", Firefox:"HTML", Opera:"HTML", Chrome:"HTML", Safari:"HTML", other:"HTML" } }); var MINBROWSERVERSION = { Firefox: 3.0, Opera: 9.52, MSIE: 6.0, Chrome: 0.3, Safari: 2.0, Konqueror: 4.0 }; var canUseHTML = (BROWSER.version === "0.0" || BROWSER.versionAtLeast(MINBROWSERVERSION[BROWSER]||0.0)); var canUseMML = (BROWSER.isFirefox && BROWSER.versionAtLeast("1.5")) || (BROWSER.isMSIE && BROWSER.hasMathPlayer) || (BROWSER.isSafari && BROWSER.versionAtLeast("5.0")) || (BROWSER.isOpera && BROWSER.versionAtLeast("9.52")); HUB.Register.StartupHook("End Config",function () { var prefer = (CONFIG.prefer && typeof(CONFIG.prefer) === "object" ? CONFIG.prefer[MathJax.Hub.Browser]||CONFIG.prefer.other||"HTML" : CONFIG.prefer); if (canUseHTML || canUseMML) { if (canUseMML && (prefer === "MML" || !canUseHTML)) { if (MathJax.OutputJax.NativeMML) {MathJax.OutputJax.NativeMML.Register("jax/mml")} else {HUB.config.jax.unshift("output/NativeMML")} HUB.Startup.signal.Post("NativeMML output selected"); } else { if (MathJax.OutputJax["HTML-CSS"]) {MathJax.OutputJax["HTML-CSS"].Register("jax/mml")} else {HUB.config.jax.unshift("output/HTML-CSS")} HUB.Startup.signal.Post("HTML-CSS output selected"); } } else { HUB.PreProcess.disabled = true; HUB.prepareScripts.disabled = true; MathJax.Message.Set( ["MathJaxNotSupported","Your browser does not support MathJax"], null,4000 ); HUB.Startup.signal.Post("MathJax not supported"); } }); })(MathJax.Hub,MathJax.Hub.Browser); MathJax.Ajax.loadComplete("[MathJax]/config/MMLorHTML.js");