Запретить преобразование тега <math> в &lt;math&gt;

Wolfling

Осваивается
Регистрация
24.11.2018
Сообщения
15
Реакции
0
Подскажите, пожалуйста, как можно запретить wiki-движку преобразовывать теги <math> в &lt;math&gt;? Насколько я понимаю, движок автоматически преобразует знаки < и > в мнемоники html, хотя его об этом никто не просил :) Можно ли запретить это действие?
 
Нашёл решение, отпишусь тут - может, у кого-то возникнет схожая проблема. Я ошибался, MathJax обрабатывает корректно такие теги. Проблема была в ином: при вставке кода нужно экранировать двойную обратную скобку ещё одной скобкой :) Расширение SimpleMathjax, которое предназначено для обработки математики, не работает с расширением MobileFrontend, о чём есть запись и в обсуждении SimpleMathjax на Википедии, и на GitHub. Пока нет реакции разработчика, вот рабочее решение: добавить в файл LocalSettings.php такой код, который просто вставит код обработки формул в начало страницы:

Код:
$wgHooks['BeforePageDisplay'][] ='onBeforePageDisplay';

function onBeforePageDisplay( OutputPage &$out, Skin &$skin )
{
    $script = '
        <script type="text/x-mathjax-config">
          MathJax.Hub.Config({
            tex2jax: {inlineMath: [["<math>","</math>"]]},
            "CHTML-preview": {messageStyle: "normal"}
          });
            
        </script>

        <script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.5/MathJax.js?config=default&locale=ru"></script>';
    $out->addHeadItem("script", $script);
    return true;
};

Решение рабочее, хоть и временное, пока не исправят основное расширение для MathJax. Конечно, есть и недостатки: например, запись <math>y'''</math>, предназначенную для производной третьего порядка, Wiki-движок воспринимает как указание на отображение текста до конца строки жирным шрифтом. Решений два: или обрамлять теги <math> в <nowiki>, что мне кажется худшим вариантом, или же писать пробелы между штрихами: <math>y' ' '</math>. Заставить wiki-движок игнорировать содержимое тегов <math> мне пока не удалось.
 
обрамлять теги <math> в <nowiki>
Для MathJax нормально. Чтобы меньше писать можно сделать шаблон который будет либо ставить оба тега, либо сразу оборачивать с обоих сторон.
 
Для MathJax нормально. Чтобы меньше писать можно сделать шаблон который будет либо ставить оба тега, либо сразу оборачивать с обоих сторон.

Мне кажется, это не нормально :) Нормальное решение - это когда можно напрямую указать движку не обрабатывать свои команды внутри тега <math>. Но вот как это сделать - я пока что не нашёл. Как-то же движок игнорирует тег code, например.
 
Назад
Верх