diff options
Diffstat (limited to 'webapp/non_npm_dependencies/katex/src/buildTree.js')
-rw-r--r-- | webapp/non_npm_dependencies/katex/src/buildTree.js | 40 |
1 files changed, 40 insertions, 0 deletions
diff --git a/webapp/non_npm_dependencies/katex/src/buildTree.js b/webapp/non_npm_dependencies/katex/src/buildTree.js new file mode 100644 index 000000000..4a8c2aeda --- /dev/null +++ b/webapp/non_npm_dependencies/katex/src/buildTree.js @@ -0,0 +1,40 @@ +var buildHTML = require("./buildHTML"); +var buildMathML = require("./buildMathML"); +var buildCommon = require("./buildCommon"); +var Options = require("./Options"); +var Settings = require("./Settings"); +var Style = require("./Style"); + +var makeSpan = buildCommon.makeSpan; + +var buildTree = function(tree, expression, settings) { + settings = settings || new Settings({}); + + var startStyle = Style.TEXT; + if (settings.displayMode) { + startStyle = Style.DISPLAY; + } + + // Setup the default options + var options = new Options({ + style: startStyle, + size: "size5", + }); + + // `buildHTML` sometimes messes with the parse tree (like turning bins -> + // ords), so we build the MathML version first. + var mathMLNode = buildMathML(tree, expression, options); + var htmlNode = buildHTML(tree, options); + + var katexNode = makeSpan(["katex"], [ + mathMLNode, htmlNode, + ]); + + if (settings.displayMode) { + return makeSpan(["katex-display"], [katexNode]); + } else { + return katexNode; + } +}; + +module.exports = buildTree; |