Поддержка MathML Core
В Chrome 109 добавили поддержку MathML Core — подмножества MathML, которое позволяет рендерить большую часть математических формул на веб-страницах без подключения библиотек. И это очень крутая новость!
MathML — сама по себе крайне интересная спецификация со сложной историей. Появилась она ещё на заре веба, но браузеры столкнулись со сложностями имплементировать некоторые её части. Тем не менее, Firefox аж с 4 версии поддерживает MathML, а Safari — с 10. Chrome включал поддержку в 24 версии браузера, но тут же выключил.
Моя команда разрабатывает хендбуки, в которых важно уметь рендерить формулы. Например, для учебников по ML это просто жизненно необходимо. И когда мы думали про то, как сделать формулы доступными, быстрыми и не тормозящими страницы, очень сильно не хватало того самого MathML. Но на момент запуска проекта поддержки в Chrome не было, поэтому взяли самую популярную на текущий момент библиотеку MathJax. В ней ещё из коробки можно серверный рендеринг формул подключить при необходимости.
Но теперь, кажется, можно будет эту библиотеку оставить только как фолбэк для старых браузеров. MathML Core просто работает из коробки, не требует JS, а разработчики из Igalia в том числе следят, чтобы реализация в браузере была доступной. К слову, как я понял, именно Igalia драйвит эту движуху по затаскиванию движка в Chromium.
Для разработчиков это значит, что если вам нужно рисовать формулы, то не нужно больше делать это картинками. Есть конвертеры из LaTeX в MathML, можно выучить синтаксис MathML, видел даже онлайн-редакторы. На сервере любой синтаксис преобразуете в MathML, на клиенте проверяете поддержку (тут, к сожалению, придётся поизвращаться со вставкой фррмулы на страницу и замером её размеров), и только если поддержки нет, то динамически подгружать MathJax поверх. И сервер разгружается, и клиент не страдает.
Но помните, что в Chrome завезли не весь MathML, а только MathML Core. Про отличия можно почитать здесь: https://w3c.github.io/mathml-core/docs/explainer.html
Post #23
1.58K