Кстати, вот пример работы математической вычитки с помощью ИИ в этой версии разработки:
Пользователь может по желанию выделить конкретное математическое выражение в редакторе Markdown и запросить его вычитку. Было бы неплохо добавить такую опцию в новый математический редактор.
@sam Оказывается, KaTeX в новом плагине работает некорректно. Если вы посмотрите на это, то станет очевидно, что проблема в отсутствующих шрифтах, и действительно, в консоли указано, что не найдено множество файлов шрифтов (Woff-v2).
Таким образом, браузер ищет папку ‘fonts’, расположенную рядом с URL темы, что явно неверно.
Думаю, всё это связано с функцией loadKaTeX, определённой в katex-bundle, которая, как я полагаю, загружает KaTeX нестандартным образом, из-за чего KaTeX не знает, где находится CSS-файл. Однако я не знаю, как это исправить.
Я только что отправил исправление для Katex. Дайте знать, если оно сработает. Мне нужно показать его @david, чтобы подтвердить безопасность, так как наш шаблон загрузки CSS несовместим с относительными ссылками внутри CSS-файла, потому что мы встраиваем таблицу стилей.
Обратите внимание: я перенёс это в новую отдельную тему, так как на основной математической теме сообщение начинало теряться и тонуть в шумах. С нетерпением жду этого обновления — мне кажется, мы уже очень близки.
Если кто-то просто не может дождаться, чтобы попробовать эту новую версию, или если (как и я) вы не можете ждать, поскольку у вас есть занятия, где она будет использоваться уже через несколько дней, то вы можете установить эту автономную версию здесь:
Я основал её на этом коммите, насколько помню, и изменил загрузку MathJax с CDN вместо внутреннего использования.
Вижу, что этот pull request уже принят, и заметил, что вы оба приложили немало усилий, чтобы довести это до конца — большое спасибо за это!
Пока я не планирую устанавливать эту версию, так как на моём сайте Discourse всё уже работает достаточно хорошо; однако у меня есть несколько вопросов.
О графике релизов: Код уже появился в ветке main на GitHub. Предполагаю, что если кто-то установит совершенно новый экземпляр Discourse сегодня, то у него автоматически будет эта новая версия плагина math. Так ли это?
О загрузчиках: Насколько я могу судить по коду, идея определения функций loadMathjax и loadKatex в ядре была отвергнута. Последняя версия, похоже, возвращается к использованию loadScript, но мне не совсем понятно, откуда берётся сам скрипт. Так ли это? Если да, то почему?
Сейчас я работаю на версии latest-release +17 в достаточно математически насыщенном продакшн-окружении.
Очень приятно видеть, что [grid] теперь корректно работает на Meta — это значительное улучшение качества жизни для постов с большим количеством математики. Я готов пойти на компромисс с [center] там, где это необходимо.
Для контекста: ранее я столкнулся с некоторыми пограничными случаями при использовании математики внутри [grid] / [details], которые я задокументировал здесь (на случай, если это всё ещё полезно):
Ещё раз спасибо всем, кто работает над обновлением до MathJax 4 — здорово видеть такой уровень отполированности.
При использовании \begin{align}...\end{align} внутри $$...$$ возникает ошибка MathJax «Erroneous nesting of equation structures». Похоже, что в ходе работы по обновлению до версии 4 MathJax стал строже применять правило «не встраивать окружения уравнений друг в друга».
На практике надёжным шаблоном в Discourse является использование aligned внутри обёртки $$:
$$
{\large
\begin{aligned}
a &= b \\
&= c
\end{aligned}
}
$$
Это позволяет избежать встраивания структуры отображаемого уравнения (align) внутри другой обёртки отображения ($$...$$), что и вызывает ошибку.
Такое поведение соответствует MathJaxV4, а также чистому LaTeX, поэтому, полагаю, здесь нет «ошибки». Определённо стоит отметить, что использование aligned вместо align — это правильный путь!