From cc52ae3e33593a9a1671a72cfc9c2ac37b98e9aa Mon Sep 17 00:00:00 2001 From: Muhammad Arnaldo Date: Wed, 12 Nov 2025 16:25:46 +0700 Subject: [PATCH] MDL-86468 filter_mathjaxloader: Upgrade MathJax to 4.0.0 --- public/filter/mathjaxloader/db/upgrade.php | 17 +++--- public/filter/mathjaxloader/readme_moodle.txt | 4 +- public/filter/mathjaxloader/settings.php | 53 +++++++++++-------- public/filter/mathjaxloader/version.php | 2 +- .../equation/tests/behat/equation.feature | 3 +- 5 files changed, 48 insertions(+), 31 deletions(-) diff --git a/public/filter/mathjaxloader/db/upgrade.php b/public/filter/mathjaxloader/db/upgrade.php index 1a110b190e4..d626778f679 100644 --- a/public/filter/mathjaxloader/db/upgrade.php +++ b/public/filter/mathjaxloader/db/upgrade.php @@ -27,12 +27,6 @@ * @return bool result */ function xmldb_filter_mathjaxloader_upgrade($oldversion) { - // Automatically generated Moodle v4.2.0 release upgrade line. - // Put any upgrade step following this. - - // Automatically generated Moodle v4.3.0 release upgrade line. - // Put any upgrade step following this. - // Automatically generated Moodle v4.4.0 release upgrade line. // Put any upgrade step following this. @@ -57,5 +51,16 @@ function xmldb_filter_mathjaxloader_upgrade($oldversion) { // Automatically generated Moodle v5.1.0 release upgrade line. // Put any upgrade step following this. + if ($oldversion < 2025111100) { + // Set value of "httpsurl" to the latest MathJax cdn version 4.0.0. + set_config('httpsurl', 'https://cdn.jsdelivr.net/npm/mathjax@4.0.0/tex-mml-chtml.js', 'filter_mathjaxloader'); + + // Set the "mathjaxconfig" value to empty due to default config has been set by default. + set_config('mathjaxconfig', '', 'filter_mathjaxloader'); + + // Main savepoint reached. + upgrade_plugin_savepoint(true, 2025111100, 'filter', 'mathjaxloader'); + } + return true; } diff --git a/public/filter/mathjaxloader/readme_moodle.txt b/public/filter/mathjaxloader/readme_moodle.txt index d82f70cd5f1..7b657e521e8 100644 --- a/public/filter/mathjaxloader/readme_moodle.txt +++ b/public/filter/mathjaxloader/readme_moodle.txt @@ -1,7 +1,7 @@ Description of MathJAX library integration in Moodle ==================================================== -* Default MathJax version: 3.2.2 +* Default MathJax version: 4.0.0 * License: Apache 2.0 * Source: https://www.mathjax.org/ @@ -24,6 +24,8 @@ Upgrading the default MathJax version Changes ------- +* Updated to the 4.0.0 version. See MDL-86468 for details. + * Updated to the 3.2.2 version. See MDL-75486 for details * Updated to the 2.7.9 version. See MDL-70317 for details. diff --git a/public/filter/mathjaxloader/settings.php b/public/filter/mathjaxloader/settings.php index 81b72fa70a6..2681f3cde59 100644 --- a/public/filter/mathjaxloader/settings.php +++ b/public/filter/mathjaxloader/settings.php @@ -25,36 +25,45 @@ defined('MOODLE_INTERNAL') || die; if ($ADMIN->fulltree) { - $item = new admin_setting_heading('filter_mathjaxloader/localinstall', - new lang_string('localinstall', 'filter_mathjaxloader'), - new lang_string('localinstall_help', 'filter_mathjaxloader')); + $item = new admin_setting_heading( + 'filter_mathjaxloader/localinstall', + new lang_string('localinstall', 'filter_mathjaxloader'), + new lang_string('localinstall_help', 'filter_mathjaxloader') + ); $settings->add($item); - $item = new admin_setting_configtext('filter_mathjaxloader/httpsurl', - new lang_string('httpsurl', 'filter_mathjaxloader'), - new lang_string('httpsurl_help', 'filter_mathjaxloader'), - 'https://cdn.jsdelivr.net/npm/mathjax@3.2.2/es5/tex-mml-chtml.js', - PARAM_RAW); + $item = new admin_setting_configtext( + 'filter_mathjaxloader/httpsurl', + new lang_string('httpsurl', 'filter_mathjaxloader'), + new lang_string('httpsurl_help', 'filter_mathjaxloader'), + 'https://cdn.jsdelivr.net/npm/mathjax@4.0.0/tex-mml-chtml.js', + PARAM_RAW + ); $settings->add($item); - $item = new admin_setting_configcheckbox('filter_mathjaxloader/texfiltercompatibility', - new lang_string('texfiltercompatibility', 'filter_mathjaxloader'), - new lang_string('texfiltercompatibility_help', 'filter_mathjaxloader'), - 0); + $item = new admin_setting_configcheckbox( + 'filter_mathjaxloader/texfiltercompatibility', + new lang_string('texfiltercompatibility', 'filter_mathjaxloader'), + new lang_string('texfiltercompatibility_help', 'filter_mathjaxloader'), + 0 + ); $settings->add($item); - $item = new admin_setting_configtextarea('filter_mathjaxloader/mathjaxconfig', - new lang_string('mathjaxsettings','filter_mathjaxloader'), - new lang_string('mathjaxsettings_desc', 'filter_mathjaxloader'), - ''); + $item = new admin_setting_configtextarea( + 'filter_mathjaxloader/mathjaxconfig', + new lang_string('mathjaxsettings', 'filter_mathjaxloader'), + new lang_string('mathjaxsettings_desc', 'filter_mathjaxloader'), + '' + ); $settings->add($item); - $item = new admin_setting_configtext('filter_mathjaxloader/additionaldelimiters', - new lang_string('additionaldelimiters', 'filter_mathjaxloader'), - new lang_string('additionaldelimiters_help', 'filter_mathjaxloader'), - '', - PARAM_RAW); + $item = new admin_setting_configtext( + 'filter_mathjaxloader/additionaldelimiters', + new lang_string('additionaldelimiters', 'filter_mathjaxloader'), + new lang_string('additionaldelimiters_help', 'filter_mathjaxloader'), + '', + PARAM_RAW + ); $settings->add($item); - } diff --git a/public/filter/mathjaxloader/version.php b/public/filter/mathjaxloader/version.php index 278d4e79b22..154a3b30cfd 100644 --- a/public/filter/mathjaxloader/version.php +++ b/public/filter/mathjaxloader/version.php @@ -24,6 +24,6 @@ defined('MOODLE_INTERNAL') || die(); -$plugin->version = 2025100600; +$plugin->version = 2025111100; $plugin->requires = 2025092600; // Requires this Moodle version. $plugin->component= 'filter_mathjaxloader'; diff --git a/public/lib/editor/tiny/plugins/equation/tests/behat/equation.feature b/public/lib/editor/tiny/plugins/equation/tests/behat/equation.feature index a788cadfd3b..f7de34a3e57 100644 --- a/public/lib/editor/tiny/plugins/equation/tests/behat/equation.feature +++ b/public/lib/editor/tiny/plugins/equation/tests/behat/equation.feature @@ -14,7 +14,8 @@ Feature: Equation editor And I click on the "Equation editor" button for the "Description" TinyMCE editor And the "class" attribute of "Edit equation using" "field" should contain "text-ltr" And I set the field "Edit equation using" to " = 1 \div 0" - And I click on "\infty" "button" + # The normal pointer click no longer reaches the button in MathJax 4.0.0. Force the click via JS instead. + And I click on "\infty" "button" skipping visibility check And I click on "Save equation" "button" And I click on "Update profile" "button" And I follow "Profile" in the user menu