Website/slides/talks/mathjax/MathJax.js
2017-09-13 01:05:37 -04:00

53 lines
1.6 KiB
JavaScript

(function () {
var newMathJax = 'https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.1/MathJax.js';
var oldMathJax = 'cdn.mathjax.org/mathjax/latest/MathJax.js';
var replaceScript = function (script, src) {
//
// Make redirected script
//
var newScript = document.createElement('script');
newScript.src = newMathJax + src.replace(/.*?(\?|$)/, '$1');
//
// Move onload and onerror handlers to new script
//
newScript.onload = script.onload;
newScript.onerror = script.onerror;
script.onload = script.onerror = null;
//
// Move any content (old-style configuration scripts)
//
while (script.firstChild) newScript.appendChild(script.firstChild);
//
// Copy script id
//
if (script.id != null) newScript.id = script.id;
//
// Replace original script with new one
//
script.parentNode.replaceChild(newScript, script);
//
// Issue a console warning
//
console.warn('WARNING: cdn.mathjax.org has been retired. Check https://www.mathjax.org/cdn-shutting-down/ for migration tips.')
}
if (document.currentScript) {
var script = document.currentScript;
replaceScript(script, script.src);
} else {
//
// Look for current script by searching for one with the right source
//
var n = oldMathJax.length;
var scripts = document.getElementsByTagName('script');
for (var i = 0; i < scripts.length; i++) {
var script = scripts[i];
var src = (script.src || '').replace(/.*?:\/\//,'');
if (src.substr(0, n) === oldMathJax) {
replaceScript(script, src);
break;
}
}
}
})();