Я использую MathJax и у меня есть следующий сценарий:
Я хочу запустить некоторый код, когда страница содержит некоторое число Math, которое MathJax будет правильно обрабатывать и отображать
Рассмотрим этот пример:
<p>
This is a page containing an equation: $b^2 - 4ac$.
</p>
Здесь функция или что я могу использовать, вернет true
. Но если на странице нет фрагмента кода TeX для обработки (или какого-либо кода в соответствии с тем, как MathJax был настроен для запуска), этот API вернет false
.
Немного подробнее
Речь идет не об изменении конвейера рендеринга. MathJax в конце концов сделает свою работу, и я в порядке. Мне просто нужен надежный способ (надеюсь, предоставляемый библиотечным API), чтобы обнаружить, что на странице есть математика, которая потребует обработки.
Имеет ли MathJax функциональность, которую я могу использовать для получения этой информации? Также, для полноты, я добавляю способ настройки MathJax (встроенный):
<script type="text/x-mathjax-config">
MathJax.Hub.Config({
extensions: ["tex2jax.js"],
jax: ["input/TeX", "output/CommonHTML"],
tex2jax: {
inlineMath: [ ['$','$'], ["\\(","\\)"] ],
displayMath: [ ['$$','$$'], ["\\[","\\]"] ],
processEscapes: true
},
"CommonHTML": { linebreaks: { automatic: true } }
});
</script>
<script src="//mathjax.rstudio.com/latest/MathJax.js?config=TeX-MML-AM_CHTML"></script>
С другой стороны ...
Если то, что я спрашиваю, на самом деле неосуществимо, то как насчет этого:
Могу ли я присоединиться к событию в конвейере рендеринга, чтобы я мог выполнить функцию обратного вызова, когда MathJax завершил рендеринг математики?
Я видел последовательность запуска MathJax и, возможно, в этом мой ответ. Однако я вижу, что триггер также запускается, когда на странице нет математики.
Troubleshoot
Я пытался обнаружить наличие классов, таких как MathJax_Preview
или mjx-chtml
, которые добавляются к генерируемым элементам. Но этот код ненадежен, так как должен запускаться после процесса рендеринга. И это добавляет время к вычислениям.
Я не могу найти API, который я ищу для запроса наличия математики для рендеринга, но кажется странным, что MathJax не раскрывает такую вещь.