buildTree.js (1114B)
1 const buildHTML = require("./buildHTML"); 2 const buildMathML = require("./buildMathML"); 3 const buildCommon = require("./buildCommon"); 4 const Options = require("./Options"); 5 const Settings = require("./Settings"); 6 const Style = require("./Style"); 7 8 const makeSpan = buildCommon.makeSpan; 9 10 const buildTree = function(tree, expression, settings) { 11 settings = settings || new Settings({}); 12 13 let startStyle = Style.TEXT; 14 if (settings.displayMode) { 15 startStyle = Style.DISPLAY; 16 } 17 18 // Setup the default options 19 const options = new Options({ 20 style: startStyle, 21 size: "size5", 22 }); 23 24 // `buildHTML` sometimes messes with the parse tree (like turning bins -> 25 // ords), so we build the MathML version first. 26 const mathMLNode = buildMathML(tree, expression, options); 27 const htmlNode = buildHTML(tree, options); 28 29 const katexNode = makeSpan(["katex"], [ 30 mathMLNode, htmlNode, 31 ]); 32 33 if (settings.displayMode) { 34 return makeSpan(["katex-display"], [katexNode]); 35 } else { 36 return katexNode; 37 } 38 }; 39 40 module.exports = buildTree;