49 lines
1.4 KiB
JavaScript
Executable File
49 lines
1.4 KiB
JavaScript
Executable File
|
|
const { Configuration } = MathJax._.input.tex.Configuration;
|
|
const { CommandMap } = MathJax._.input.tex.SymbolMap;
|
|
const NodeUtil = MathJax._.input.tex.NodeUtil.default;
|
|
|
|
var GetArgumentMML = function (parser, name) {
|
|
var arg = parser.ParseArg(name);
|
|
if (!NodeUtil.isInferred(arg)) {
|
|
return arg;
|
|
}
|
|
var children = NodeUtil.getChildren(arg);
|
|
if (children.length === 1) {
|
|
return children[0];
|
|
}
|
|
var mrow = parser.create("node", "mrow");
|
|
NodeUtil.copyChildren(arg, mrow);
|
|
NodeUtil.copyAttributes(arg, mrow);
|
|
return mrow;
|
|
};
|
|
|
|
let mathjaxKnowl = {};
|
|
/**
|
|
* Implements \knowl{url}{math}
|
|
* @param {TexParser} parser The calling parser.
|
|
* @param {string} name The TeX string
|
|
*/
|
|
mathjaxKnowl.Knowl = function (parser, name) {
|
|
var url = parser.GetArgument(name);
|
|
var arg = GetArgumentMML(parser, name);
|
|
var mrow = parser.create("node", "mrow", [arg], {
|
|
tabindex: '0',
|
|
"data-knowl": url
|
|
});
|
|
parser.Push(mrow);
|
|
};
|
|
|
|
new CommandMap(
|
|
"knowl",
|
|
{
|
|
knowl: ["Knowl"]
|
|
},
|
|
mathjaxKnowl
|
|
);
|
|
const configuration = Configuration.create("knowl", {
|
|
handler: {
|
|
macro: ["knowl"]
|
|
}
|
|
});
|