Merge pull request #3402 from dpalou/MOBILE-4143

Mobile 4143
main
Noel De Martin 2022-10-11 11:20:51 +02:00 committed by GitHub
commit 0fd3c1d479
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 14 additions and 9 deletions

6
package-lock.json generated
View File

@ -23280,9 +23280,9 @@
"dev": true
},
"mathjax": {
"version": "2.7.7",
"resolved": "https://registry.npmjs.org/mathjax/-/mathjax-2.7.7.tgz",
"integrity": "sha512-OOl0B2/0tSJAtAZarXnQuLDBLgTNRqiI9VqHTQzPsxf4okT2iIpDrvaklK9x2QEMD1sDj4yRn11Ygci41DxMAQ=="
"version": "2.7.9",
"resolved": "https://registry.npmjs.org/mathjax/-/mathjax-2.7.9.tgz",
"integrity": "sha512-NOGEDTIM9+MrsqnjPEjVGNx4q0GQxqm61yQwSK+/5S59i26wId5IC5gNu9/bu8+CCVl5p9G2IHcAl/wJa+5+BQ=="
},
"md5-file": {
"version": "5.0.0",

View File

@ -117,7 +117,7 @@
"es6-promise-plugin": "^4.2.2",
"hammerjs": "^2.0.8",
"jszip": "^3.7.1",
"mathjax": "2.7.7",
"mathjax": "2.7.9",
"moment": "^2.29.2",
"moment-timezone": "^0.5.34",
"nl.kingsquare.cordova.background-audio": "^1.0.1",

View File

@ -291,13 +291,18 @@ export class CoreQuestionHelperProvider {
return;
}
matches.forEach((match: string) => {
matches.forEach((scriptCode) => {
if (scriptCode.match(/<script[^>]+type="math\/tex"/m)) {
// Don't remove math/tex scripts, they're needed to render the math expressions.
return;
}
// Add the script to scriptsCode and remove it from html.
question.scriptsCode += match;
question.html = question.html.replace(match, '');
question.scriptsCode += scriptCode;
question.html = question.html.replace(scriptCode, '');
// Search init_question functions for this type.
const initMatches = match.match(new RegExp('M.qtype_' + question.type + '.init_question\\(.*?}\\);', 'mg'));
const initMatches = scriptCode.match(new RegExp('M.qtype_' + question.type + '.init_question\\(.*?}\\);', 'mg'));
if (initMatches) {
let initMatch = initMatches.pop()!;
@ -312,7 +317,7 @@ export class CoreQuestionHelperProvider {
const amdRegExp = new RegExp('require\\(\\[["\']qtype_' + question.type + '/question["\']\\],[^f]*' +
'function\\(amd\\)[^\\{]*\\{[^a]*amd\\.init\\((["\'](q|question-' + usageId + '-)' + question.slot +
'["\'].*?)\\);', 'm');
const amdMatch = match.match(amdRegExp);
const amdMatch = scriptCode.match(amdRegExp);
if (amdMatch) {
// Try to convert the arguments to an array and add them to the question.