MediaWiki удалил MathJax. Может ли MathJax быть принудительно на стороне клиента по-другому?

К моему неудовольствию, MediaWiki имеет недавно отключила поддержку MathJax (билет: T99369) рендеринг формул TeX по всей википедии.

Так как я (и другие, если вы снимаете тему обсуждения с билетом), находите рендеринг с оставшимися параметрами (MathML, PNG) ниже, я хотел бы "слить поток" MathJax в Википедию.

Так как загрузка дополнительных файлов JavaScript напрямую через пользовательские настройки JavaScript в Википедии не представляется возможной с использованием элементов <script>, я не понимаю, как добиться этого успеха. Будет ли это, MathJax может быть включен через CDN наиболее легко.

Я использую текущие браузеры Edge и Firefox, поэтому любое решение, работающее с одним или обоими из них, будет с благодарностью!


Между тем, я нашел Greasemonkey для Firefox, который мог бы это сделать, учитывая подходящий script. Поскольку я не являюсь ни Greasemonkey, ни JavaScript-экспертом, любой намек на то, как приступить к написанию такого script, будет полезен.

Ответы

Ответ 1

Как зарегистрированный пользователь, вы можете сделать следующее:

В пользовательские настройки = > внешний вид включите режим "MathML с режимом SVG или PNG". (Другие два режима требуют немного другого script, но imho этот режим является лучшим вариантом прямо сейчас.)

Затем отредактируйте свою страницу сценариев конкретных пользователей в https://en.wikipedia.org/wiki/User:YOURHANDLE/common.js [Не забудьте изменить имя пользователя!] и добавьте к ней следующие пользовательские script:

// add to User:YOURNAME/common.js to get smooth MathJax rendering
var mathTags = $('.mwe-math-mathml-a11y');
if (mathTags.length > 0){ //only do something when there math on the page
  window.MathJax = { //hook into MathJax configuration
    AuthorInit: function () {
      MathJax.Hub.Register.StartupHook("End",function () { //when MathJax is done...
        MathJax.Hub.Queue(
            function(){
             mathTags.removeClass('mwe-math-mathml-a11y'); // .. make the span around MathML (now MathJax output) visible
             $('.mwe-math-fallback-image-inline').addClass('mwe-math-mathml-a11y'); //hide fallback images
            }
        );
      });
    }
  };
  mw.loader.load('https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.0/MathJax.js?config=MML_HTMLorMML-full');//load MathJax with a suitable combined config file
}

Этот script загружает MathJax только тогда, когда там отображается математика на странице, отображает ее и (при ее рендеринге) заменяет резервные изображения результатами.

Таким образом, у вас очень мало дрожания. Из быстрого теста это, похоже, работает на Chrome 43, Firefox 39, IE8 и Edge и WebKit 2.6.2 (поэтому должно работать на Safari).