// ==UserScript== // @name MathJax in Wikipedia and Reddit // @namespace http://www.mathjax.org/ // @description Insert MathJax into Wikipedia and Reddit pages // @include http://en.wikipedia.org/wiki/* // @include http://www.reddit.com/* // ==/UserScript== /* this is a slight modification of http://docs.mathjax.org/en/latest/_static/mathjax_wikipedia.user.js to work on Reddit pages */ var CDN_url = "https://c328740.ssl.cf1.rackcdn.com/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML-full"; if ((window.unsafeWindow == null ? window : unsafeWindow).MathJax == null) { if(document.location.href.indexOf('wikipedia.org') != -1) WikiImages(); if(document.location.href.indexOf('reddit.com') != -1) uncode(); inlineConfig(); MathJax(); } // // Replace the images with MathJax scripts of type math/tex // function WikiImages() { var images = document.getElementsByTagName('img'), count = 0; for (var i = images.length - 1; i >= 0; i--) { var img = images[i]; if (img.className === "tex") { var script = document.createElement("script"); script.type = "math/tex"; if (window.opera) {script.innerHTML = img.alt} else {script.text = img.alt} img.parentNode.replaceChild(script,img); count++; } } return count; } // // Unescape surrounding TeX the World brackets [; ;] // function uncode() { var code = document.getElementsByTagName("code"); for (var i = 0; i < code.length; ) { var cd = code.item(i); if (!cd.innerHTML.match(/\[;[\s\S]+;\]/)) { ++i; continue; } var span = document.createElement('span'); span.innerHTML = cd.innerHTML; cd.parentNode.replaceChild(span,cd); } } function inlineConfig() { var head = document.getElementsByTagName("head")[0], script; script = document.createElement("script"); script.type = "text/x-mathjax-config"; script[(window.opera ? "innerHTML" : "text")] = "MathJax.Hub.Config({\n" + " tex2jax: { inlineMath: [ ['[;',';]'], ['\\\\(','\\\\)'] ]}\n" + "});" head.appendChild(script); } function MathJax() { var head = document.getElementsByTagName("head")[0], script; script = document.createElement("script"); script.type = "text/javascript"; script.src = CDN_url; head.appendChild(script); }