www

Unnamed repository; edit this file 'description' to name the repository.
Log | Files | Refs | README

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;