MathJax для MediaWiki

MathJax
Реализует:
ΤΕΧ и MathML
Язык программирования:
PHP, JavaScript



Системные требования:
MediaWiki
Разработчик:
Александр Машин и Mithgol the Webmaster



Дата появления:
2010
Текущая версия:
3.0
Дата выхода текущей версии:
4 ноября 2024
Статус:
стабильно


Предыдущая версия:
2.0
Лицензия:
MIT license

MathJax — расширение для MediaWiki, позволяющее показывать формулы в форматах ΤΕΧ и MathML путём вызова JavaScript-инструментария MathJax, созданное специально для «Традиции» Мицголом-вебмастером и Александром Машиным в 20102012 гг. и дорабатываемое по сей день.

Это расширение было разработано для «Традиции», в связи с нехваткой мощности её web-сервера для преобразования формул в изображения с помощью L A T E X \mathrm{L\!\!^{{}_{\scriptstyle A}} \!\!\!\!\!\;\; T\!_{\displaystyle E} \! X} , сейчас установлено на её сервере и обеспечивает единственный способ вывода формул.

Использование расширенияПравить

Когда расширение установлено с настройками по умолчанию, в формулы преобразуется викитекст внутри определённых тегов:

Формат Режим вывода
внутристрочный выносной
ΤΕΧ
MathML <math xmlns="http://www.w3.org/1998/Math/MathML">...</math> <math xmlns="http://www.w3.org/1998/Math/MathML" display="block">...</math>

Кроме того, распознаётся не обрамлённый тегом код ΤΕΧ, наподобие \begin{pmatrix}...\end{pmatrix}.

MathJax для MediaWiki в «Традиции»Править

Порядок работы с формулами в «Традиции» описан на страницах:

Расширения ΤΕΧ от MathJax и локализация формулПравить

Дополнительно к операторам ΤΕΧ, реализованным MathJax, с помощью сообщений MediaWiki определяются макросы:

Разделённый запятыми список макросов находится в сообщении mathjax-macros, а значения макросов — в сообщениях с названиями вида mathjax-macro-(название макроса), например, значение макроса \ctg для котангенса находится в сообщении mathjax-macro-ctg.

Расширение понимает викиссылки внутри уравнения: например, <math>[[Скорость света|c]]^2</math> даст c  Скорость света  2 \href {//traditio.wiki/%D0%A1%D0%BA%D0%BE%D1%80%D0%BE%D1%81%D1%82%D1%8C_%D1%81%D0%B2%D0%B5%D1%82%D0%B0}{ \texttip {c}{ Скорость света }}^2 . Кроме того, на функции из перечня в сообщении mathjax-pages автоматически ставятся викиссылки, указывающие на страницы об этих функциях, определяемые в сообщениях с названиями вида mathjax-page-(название функции), например, название функции \ctg для котангенса находится в сообщении mathjax-page-ctg.

Технические особенностиПравить

Особенность расширения — то, что оно состоит из серверной и клиентской части, полагающихся на MathJax, написанный на JavaScript.

Опциональная серверная часть преобразовывает ΤΕΧ в MathML. Серверная часть может реализовываться как установкой MathJax на сервере MediaWiki, так и в отдельном контейнере Docker.

Опциональная клиентская часть или перерисовывает формулы в формате MathML, или отрисовывает формулы ΤΕΧ, присоединяя к ним контекстное меню инструментов. Если формул на странице нет, конфигурационный JavaScript и скрипты MathJax к ней добавлены не будут.

НастройкиПравить

Администратору сервера MediaWiki доступны следующие настройки расширения:

  • переменные, регулирующие включение серверной и клиентской частей расширения, а для сервеной части — возможный URL контейнеризированного MathJax,
  • путь к локальному и CDN-дистрибутивам MathJax и переменная для выбора между ними,
  • тег для формул, по умолчанию, <math>,
  • тег для химических формул, по умолчанию, <chem>,
  • пространства имён XML для MathML, по умолчанию, только одно — http://www.w3.org/1998/Math/MathML,
  • промежуточные символы обрамления внутристрочных и выносных формул ΤΕΧ, по умолчанию, соответственно, \(...\) и $$...$$,
  • список тегов (<script>, <noscript>, <style>, <textarea>, <pre>, <code>, <nowiki>, <kbd>, <tt>) и классов (diff), где формулы не распознаются,
  • список допустимых тегов MathML, по умолчанию, все теги из спецификации.

С помощью системных сообщений MediaWiki настраиваются:

История версийПравить

Версия Дата Изменения
3.0 4 ноября 2024
  • Добавление контейнеризированного MathJax,
  • Поддержка заголовков CSP.
2.0 6 февраля 2021

Подключение серверной части расширения.

1.8 6 февраля 2021
  • Переход к поддержке MathJax 3.0
  • Рефакторинг
  • Переход на современный механизм регистрации расширений
1.7 30 августа 2017
  • Прекращение работы CDN MathJax
  • Подключение расширения для химических формул
  • Подключение макросов MediaWiki
1.62 20 сентября 2015 Возможность использовать совместно с HTTPS
1.61 17 сентября 2015 Подключение расширения MathJax cancel, изменение реализации всплывающих подсказок
1.6 22 июня 2015 Автоматическая вставка викиссылок на страницы об определённых функциях в формулы; оптимизация
1.51 22 июня 2015 Поддержка обратных гиперболических функций
1.5 15 февраля 2014 Подключение в конфигурацию по умолчанию расширений MathJax color для вывода цветных формул, action для интерактивных формул и AMScd для показа коммутативных диаграмм.
1.4 6 сентября 2012 Возможность вставлять в формулы ΤΕΧ викиссылки в формате [[Скорость света|c]], вынос конфигурации MathJax в отдельное сообщение MediaWiki, контроль допустимости названия окружения в командах \begin {...} и \end {...}, поддержка нумерации уравнений.
1.3 3 сентября 2012 Возможность вставлять в формулы ΤΕΧ гиперссылки в формате \href{http://traditio-ru.org/wiki/Скорость_света}{c}.
1.2 1 сентября 2012 Запись дополнительно определяемых макросов ΤΕΧ в системные сообщения MediaWiki.
1.11 27 августа 2012 Устранение ошибки, из-за которой, после правки раздела без формул страницы с формулами, к странице переставали прикрепляться конфигурация и сценарии MathJax.
1.1 23 августа 2012 Замена <displaymath>...</displaymath> для выносного ΤΕΧ на <math display="block">...</math>.
1.0 23 августа 2012 Стабильный выпуск. Распознавание традиционного для вики формата : <math>...</math> (в начале строки) в качестве выносной формулы ΤΕΧ.
0.9 23 августа 2012 Конфигурирование макросов (включая русификацию тригонометрических и логарифмических функций) без вмешательства в код расширения
0.8 5 августа 2012 Пересмотр архитектуры: переход к определению пользовательского тега MediaWiki
0.7 5 августа 2012 Заявленная поддержка MathML реализована. Последняя публично доступная версия.
0.6 21 июля 2012 Поддержка формул ΤΕΧ вне тега <math>, а также выносных формул
0.5 февраль 2012 Совместимость с MathJax 2.0
0.3 осень 2011 Добавление некоторых недостающих символов
0.2 2011 Переход на внешний CDN-дистрибутив MathJax по адресу http://cdn.mathjax.org/mathjax/latest/MathJax.js
0.1 30 октября 2010 Первая версия

См. такжеПравить