Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
// setup SRE
const speechConfig = {
semantics: true,
domain: data.speakRuleset || 'mathspeak',
style: data.speakStyle || 'default',
semantic: data.semantic,
minSTree: data.minSTree,
speakText: true,
speech: 'deep'
};
if (data.speakText === false) speechConfig.speakText = false
sre.setupEngine(speechConfig);
// if MathML, enrich and continue
if (data.format === "MathML") {
data.speakText = sre.toSpeech(data.math);
data.math = sre.toEnriched(data.math).toString();
data.math = data.math.replace(/alttext="(.*?)"/,'alttext="' + data.speakText + '"');
callback(data);
} else {
// convert to MathML, enrich and continue
const newdata = {
math: data.math,
format: data.format,
mml: true
};
mathjax.typeset(newdata, function (result) {
if (result.error) throw result.error;
data.speakText = sre.toSpeech(result.mml);
data.math = sre.toEnriched(result.mml).toString();
data.math = data.math.replace(/alttext="(.*?)"/,'alttext="' + data.speakText + '"');
data.format = 'MathML';
callback(data);
mathjax.typeset(newdata, function (result) {
if (result.error) throw result.error;
data.speakText = sre.toSpeech(result.mml);
data.math = sre.toEnriched(result.mml).toString();
data.math = data.math.replace(/alttext="(.*?)"/,'alttext="' + data.speakText + '"');
data.format = 'MathML';
callback(data);
});
}