Advertisement
Guest User

LaTeXhk

a guest
Jul 27th, 2015
274
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. // ==UserScript==
  2. // @name        LaTeXhk
  3. // @namespace   LaTeXhk
  4. // @include     /^https?:\/\/2ch\.(hk|pm|re|tf|wj)/sci/
  5. // @version     2.1
  6. // @grant       GM_getValue
  7. // @grant       GM_setValue
  8. // @grant       GM_xmlhttpRequest
  9. // ==/UserScript==
  10.  
  11.  
  12. mathJaxOpt = document.createElement('script');
  13. mathJaxOpt.type = 'text/x-mathjax-config';
  14. mathJaxOpt[(mathJaxOpt.innerText===undefined?"textContent":"innerText")] = 'MathJax.Hub.Config({tex2jax: {inlineMath: [[\'$\',\'$\']]}});';
  15. document.getElementsByTagName('head')[0].appendChild(mathJaxOpt);
  16. mathJax = document.createElement('script');
  17. mathJax.type = 'text/javascript';
  18. mathJax.src = "https://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML";
  19. document.getElementsByTagName('head')[0].appendChild(mathJax);
  20.  
  21. previewArea = document.createElement('tr');
  22. previewArea.className = "preview-area";
  23. previewAreaLabelCont = document.createElement('td');
  24. previewAreaLabelCont.className = 'label desktop';
  25. previewAreaLabel = document.createElement('label');
  26. previewAreaLabel.setAttribute('for','preview');
  27. previewAreaLabel.innerHTML = 'Предпросмотр';
  28. previewAreaLabelCont.appendChild(previewAreaLabel);
  29. previewArea.appendChild(previewAreaLabelCont);
  30. preview = document.createElement('td');
  31. preview.className = "preview";
  32. previewArea.appendChild(preview);
  33. var options = document.getElementsByClassName('option-area desktop')[0];
  34.  
  35. previewButton = document.createElement('input');
  36. previewButton.id = 'previewButton';
  37. previewButton.className = 'all-platform';
  38. previewButton.type = 'button';
  39. previewButton.value = 'Предпросмотр';
  40. previewButton.name = 'previewButton';
  41. previewButton.onclick = function(){
  42.   if (options.parentNode!=previewArea.parentNode){
  43.     options.parentNode.insertBefore(previewArea,options);
  44.   }
  45.   var html =document.getElementsByClassName('symbol-counter')[0].children[1].value;
  46.   html = html.replace(/\n/g, "<br>");
  47.   preview.innerHTML=html;
  48.   window.postMessage("latex_update", "*");
  49. }
  50. document.getElementById("e-mail").style.width = "250px";
  51. document.getElementsByClassName('mail')[0].children[1].appendChild(previewButton);
  52.  
  53.  
  54. var script = document.createElement('script');
  55. script.textContent = '\
  56. var storedUpdateThread = updateThread;\
  57. updateThread = function(){\
  58.  storedUpdateThread();\
  59.  MathJax.Hub.Typeset();\
  60. };\
  61. window.addEventListener("message", function(e) {\
  62.  if (e.data == "latex_update") {\
  63.     MathJax.Hub.Typeset(); \
  64.  }\
  65. }, false);\
  66. ';
  67. script.type = "text/javascript";
  68. document.body.appendChild(script);
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement