53 lines
1.6 KiB
JavaScript
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;
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
})();
|