More documentation for the javascript
This commit is contained in:
@@ -1,22 +1,35 @@
|
||||
/* This file defines a processor in between the student's math input
|
||||
(AsciiMath) and what is read by MathJax. It allows for our own
|
||||
customizations, such as use of the syntax "a_b__x" in superscripts, or
|
||||
possibly coloring certain variables, etc&.
|
||||
|
||||
It is used in the <textline> definition like the following:
|
||||
|
||||
<symbolicresponse expect="a_b^c + b_x__d" size="30">
|
||||
<textline math="1"
|
||||
preprocessorClassName="SymbolicMathjaxPreprocessor"
|
||||
preprocessorSrc="/static/js/capa/symbolic_mathjax_preprocessor.js"/>
|
||||
</symbolicresponse>
|
||||
*/
|
||||
window.SymbolicMathjaxPreprocessor = function () {
|
||||
this.fn = function (eqn) {
|
||||
// flags and config
|
||||
var superscriptsOn = true;
|
||||
this.fn = function (eqn) {
|
||||
// flags and config
|
||||
var superscriptsOn = true;
|
||||
|
||||
if (superscriptsOn) {
|
||||
// find instances of "__" and make them superscripts ("^") and tag them
|
||||
// as such. Specifcally replace instances of "__X" or "__{XYZ}" with
|
||||
// "^{CHAR$1}", marking superscripts as different from powers
|
||||
if (superscriptsOn) {
|
||||
// find instances of "__" and make them superscripts ("^") and tag them
|
||||
// as such. Specifcally replace instances of "__X" or "__{XYZ}" with
|
||||
// "^{CHAR$1}", marking superscripts as different from powers
|
||||
|
||||
// a zero width space--this is an invisible character that no one would
|
||||
// use, that gets passed through MathJax and to the server
|
||||
var c = "\u200b";
|
||||
eqn = eqn.replace(/__(?:([^\{])|\{([^\}]+)\})/g, '^{' + c + '$1$2}');
|
||||
// a zero width space--this is an invisible character that no one would
|
||||
// use, that gets passed through MathJax and to the server
|
||||
var c = "\u200b";
|
||||
eqn = eqn.replace(/__(?:([^\{])|\{([^\}]+)\})/g, '^{' + c + '$1$2}');
|
||||
|
||||
// NOTE: MathJax supports '\class{name}{mathcode}' but not for asciimath
|
||||
// input, which is too bad. This would be preferable to the char tag
|
||||
}
|
||||
// NOTE: MathJax supports '\class{name}{mathcode}' but not for asciimath
|
||||
// input, which is too bad. This would be preferable to this char tag
|
||||
}
|
||||
|
||||
return eqn;
|
||||
};
|
||||
return eqn;
|
||||
};
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user