Вопрос или проблема
Мне нужно писать химические формулы в публикациях WordPress. Для этого я хочу использовать пакет mhchem. Я готов использовать плагин для этого, но в репозитории WordPress.org его, похоже, нет.
Как указано здесь, расширение mhchem можно включить в конфигурациях mathjax, добавив следующее в массив расширений в блоке TeX.
TeX: { extensions: ["mhchem.js"] }
Я могу загрузить Mathjax на свой сервер (используя плагин Mathjax-Latex). Поскольку Mathjax доступен на моем сервере, я надеюсь, что пакет mhchem можно использовать через вышеупомянутую настройку в Mathjax, но не могу понять, где и как? Я обратился за помощью на форум поддержки плагина Mathjax-latex, но даже через год не получил ответа.
Любая помощь в этом отношении приветствуется. Мне бы хорошо подошло, если это будет через плагин Mathjax-Latex или как-либо иначе.
Плагин Mathjax предоставляет фильтр под названием mathjax_config
, который можно использовать для добавления параметров конфигурации, что-то похожее на это должно сработать:
add_filter( 'mathjax_config', function() {
return ['Tex' => [ 'extensions'=> [ 'path/to/mchem.js'] ] ];
});
Если вы хотите убрать зависимость от плагина, вам нужно зарегистрировать библиотеку mathjax и белый список всех соответствующих тегов, чтобы они не были удалены при сохранении поста с помощью wp_kses_post
Ответ или решение
Когда речь идет о публикации химических формул на платформе WordPress, особенно если вы хотите использовать пакет mhchem для этого, важно понимать, как интегрировать конкретные математические расширения в WordPress. В вашем случае вы хотите добавить возможность использования концентраций и химических реакций, которые предоставляет пакет mhchem в MathJax, используемый через плагин MathJax-Latex.
Теория
Пакет mhchem представляет собой расширение для MathJax, предназначенное для отображения химических уравнений и формул в формате TeX. MathJax — это JavaScript-библиотека, обеспечивающая удобный способ отображения математических выражений через страницы web. Поддержка mhchem позволяет среде MathJax отображать мнемоники химических формул, таких как \ce{H2O}
.
Пример
Чтобы добавить mhchem к вашей конфигурации MathJax на WordPress, вы правильно заметили, что необходимо указать mhchem в разделе расширений в настройках MathJax. Конфигурация MathJax может выглядеть так:
TeX: { extensions: ["mhchem.js"] }
В данном контексте расширение mhchem.js позволит поддержать написание химических формул в вашем WordPress-блоге.
Применение
-
Использование MathJax-Latex плагина: Вы уже установили плагин MathJax-Latex на ваш сайт WordPress. Плагин MathJax-Latex предлагает фильтр
mathjax_config
, который позволяет добавлять конфигурационные параметры для MathJax.Чтобы интегрировать mhchem, можно использовать следующий код:
add_filter('mathjax_config', function() { return [ 'TeX' => [ 'extensions' => ['path/to/mhchem.js'] ] ]; });
Этот код добавляется в functions.php вашей темы WordPress или в пользовательский плагин, если таковой имеется. Путь
path/to/mhchem.js
следует заменить на фактическое местоположение вашего mhchem.js файла на сервере. -
Удаление зависимости от плагина: Если вы предпочитаете не использовать плагин, можно вручную загрузить библиотеку MathJax. Это требует добавления MathJax с нужными настройками прямо в вашу тему WordPress. В functions.php темы можно добавить новый скрипт для регистрации и вклада MathJax:
function enqueue_custom_mathjax() { wp_enqueue_script( 'mathjax-script', 'https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.6/MathJax.js?config=TeX-AMS_HTML', // здесь убедитесь, что настраиваете путь к вашей установке MathJax array(), null, true ); wp_add_inline_script('mathjax-script', 'MathJax.Hub.Config({ TeX: { extensions: ["mhchem.js"] } });'); } add_action('wp_enqueue_scripts', 'enqueue_custom_mathjax');
Здесь мы используем CDN, но если mhchem.js доступен на вашем сервере, его можно загрузить непосредственно, добавив соответствующий script src.
-
Обратите внимание на Kses: WordPress по умолчанию использует функцию
wp_kses_post
для фильтрации HTML, сохраняемого в базе данных из-за соображений безопасности. Это может выбросить любые нестандартные теги из вашего MathJax кода. Для решения этой проблемы убедитесь, что любые используемые теги находятся в белом списке. Это можно сделать путем изменения конфигурацииkses
.
Подводя итог, интеграция mhchem в WordPress сочетает использование гибкости плагинов MathJax и точной настройки движка WordPress. Следуя перечисленным шагам, вы получите стабильное отображение химических формул, необходимое для ваших нужд.