annotate katex/contrib/render-a11y-string.js @ 8:4a25b534c81c javascript-experiment

Add v8 engine and include katex
author Jonatan Werpers <jonatan@werpers.com>
date Wed, 17 Jun 2020 21:43:52 +0200
parents
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
8
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
1 (function webpackUniversalModuleDefinition(root, factory) {
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
2 if(typeof exports === 'object' && typeof module === 'object')
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
3 module.exports = factory(require("katex"));
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
4 else if(typeof define === 'function' && define.amd)
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
5 define(["katex"], factory);
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
6 else {
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
7 var a = typeof exports === 'object' ? factory(require("katex")) : factory(root["katex"]);
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
8 for(var i in a) (typeof exports === 'object' ? exports : root)[i] = a[i];
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
9 }
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
10 })((typeof self !== 'undefined' ? self : this), function(__WEBPACK_EXTERNAL_MODULE__0__) {
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
11 return /******/ (function(modules) { // webpackBootstrap
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
12 /******/ // The module cache
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
13 /******/ var installedModules = {};
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
14 /******/
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
15 /******/ // The require function
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
16 /******/ function __webpack_require__(moduleId) {
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
17 /******/
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
18 /******/ // Check if module is in cache
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
19 /******/ if(installedModules[moduleId]) {
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
20 /******/ return installedModules[moduleId].exports;
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
21 /******/ }
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
22 /******/ // Create a new module (and put it into the cache)
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
23 /******/ var module = installedModules[moduleId] = {
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
24 /******/ i: moduleId,
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
25 /******/ l: false,
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
26 /******/ exports: {}
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
27 /******/ };
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
28 /******/
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
29 /******/ // Execute the module function
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
30 /******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
31 /******/
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
32 /******/ // Flag the module as loaded
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
33 /******/ module.l = true;
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
34 /******/
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
35 /******/ // Return the exports of the module
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
36 /******/ return module.exports;
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
37 /******/ }
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
38 /******/
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
39 /******/
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
40 /******/ // expose the modules object (__webpack_modules__)
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
41 /******/ __webpack_require__.m = modules;
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
42 /******/
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
43 /******/ // expose the module cache
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
44 /******/ __webpack_require__.c = installedModules;
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
45 /******/
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
46 /******/ // define getter function for harmony exports
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
47 /******/ __webpack_require__.d = function(exports, name, getter) {
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
48 /******/ if(!__webpack_require__.o(exports, name)) {
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
49 /******/ Object.defineProperty(exports, name, { enumerable: true, get: getter });
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
50 /******/ }
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
51 /******/ };
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
52 /******/
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
53 /******/ // define __esModule on exports
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
54 /******/ __webpack_require__.r = function(exports) {
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
55 /******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) {
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
56 /******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
57 /******/ }
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
58 /******/ Object.defineProperty(exports, '__esModule', { value: true });
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
59 /******/ };
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
60 /******/
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
61 /******/ // create a fake namespace object
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
62 /******/ // mode & 1: value is a module id, require it
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
63 /******/ // mode & 2: merge all properties of value into the ns
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
64 /******/ // mode & 4: return value when already ns object
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
65 /******/ // mode & 8|1: behave like require
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
66 /******/ __webpack_require__.t = function(value, mode) {
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
67 /******/ if(mode & 1) value = __webpack_require__(value);
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
68 /******/ if(mode & 8) return value;
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
69 /******/ if((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
70 /******/ var ns = Object.create(null);
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
71 /******/ __webpack_require__.r(ns);
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
72 /******/ Object.defineProperty(ns, 'default', { enumerable: true, value: value });
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
73 /******/ if(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
74 /******/ return ns;
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
75 /******/ };
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
76 /******/
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
77 /******/ // getDefaultExport function for compatibility with non-harmony modules
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
78 /******/ __webpack_require__.n = function(module) {
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
79 /******/ var getter = module && module.__esModule ?
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
80 /******/ function getDefault() { return module['default']; } :
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
81 /******/ function getModuleExports() { return module; };
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
82 /******/ __webpack_require__.d(getter, 'a', getter);
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
83 /******/ return getter;
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
84 /******/ };
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
85 /******/
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
86 /******/ // Object.prototype.hasOwnProperty.call
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
87 /******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
88 /******/
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
89 /******/ // __webpack_public_path__
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
90 /******/ __webpack_require__.p = "";
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
91 /******/
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
92 /******/
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
93 /******/ // Load entry module and return exports
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
94 /******/ return __webpack_require__(__webpack_require__.s = 1);
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
95 /******/ })
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
96 /************************************************************************/
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
97 /******/ ([
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
98 /* 0 */
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
99 /***/ (function(module, exports) {
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
100
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
101 module.exports = __WEBPACK_EXTERNAL_MODULE__0__;
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
102
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
103 /***/ }),
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
104 /* 1 */
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
105 /***/ (function(module, __webpack_exports__, __webpack_require__) {
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
106
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
107 "use strict";
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
108 __webpack_require__.r(__webpack_exports__);
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
109 /* harmony import */ var katex__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(0);
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
110 /* harmony import */ var katex__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(katex__WEBPACK_IMPORTED_MODULE_0__);
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
111 /**
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
112 * renderA11yString returns a readable string.
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
113 *
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
114 * In some cases the string will have the proper semantic math
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
115 * meaning,:
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
116 * renderA11yString("\\frac{1}{2}"")
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
117 * -> "start fraction, 1, divided by, 2, end fraction"
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
118 *
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
119 * However, other cases do not:
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
120 * renderA11yString("f(x) = x^2")
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
121 * -> "f, left parenthesis, x, right parenthesis, equals, x, squared"
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
122 *
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
123 * The commas in the string aim to increase ease of understanding
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
124 * when read by a screenreader.
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
125 */
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
126 // NOTE: since we're importing types here these files won't actually be
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
127 // included in the build.
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
128 // $FlowIgnore: we import the types directly anyways
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
129
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
130 var stringMap = {
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
131 "(": "left parenthesis",
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
132 ")": "right parenthesis",
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
133 "[": "open bracket",
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
134 "]": "close bracket",
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
135 "\\{": "left brace",
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
136 "\\}": "right brace",
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
137 "\\lvert": "open vertical bar",
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
138 "\\rvert": "close vertical bar",
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
139 "|": "vertical bar",
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
140 "\\uparrow": "up arrow",
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
141 "\\Uparrow": "up arrow",
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
142 "\\downarrow": "down arrow",
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
143 "\\Downarrow": "down arrow",
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
144 "\\updownarrow": "up down arrow",
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
145 "\\leftarrow": "left arrow",
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
146 "\\Leftarrow": "left arrow",
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
147 "\\rightarrow": "right arrow",
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
148 "\\Rightarrow": "right arrow",
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
149 "\\langle": "open angle",
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
150 "\\rangle": "close angle",
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
151 "\\lfloor": "open floor",
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
152 "\\rfloor": "close floor",
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
153 "\\int": "integral",
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
154 "\\intop": "integral",
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
155 "\\lim": "limit",
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
156 "\\ln": "natural log",
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
157 "\\log": "log",
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
158 "\\sin": "sine",
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
159 "\\cos": "cosine",
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
160 "\\tan": "tangent",
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
161 "\\cot": "cotangent",
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
162 "\\sum": "sum",
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
163 "/": "slash",
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
164 ",": "comma",
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
165 ".": "point",
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
166 "-": "negative",
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
167 "+": "plus",
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
168 "~": "tilde",
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
169 ":": "colon",
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
170 "?": "question mark",
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
171 "'": "apostrophe",
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
172 "\\%": "percent",
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
173 " ": "space",
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
174 "\\ ": "space",
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
175 "\\$": "dollar sign",
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
176 "\\angle": "angle",
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
177 "\\degree": "degree",
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
178 "\\circ": "circle",
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
179 "\\vec": "vector",
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
180 "\\triangle": "triangle",
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
181 "\\pi": "pi",
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
182 "\\prime": "prime",
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
183 "\\infty": "infinity",
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
184 "\\alpha": "alpha",
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
185 "\\beta": "beta",
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
186 "\\gamma": "gamma",
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
187 "\\omega": "omega",
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
188 "\\theta": "theta",
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
189 "\\sigma": "sigma",
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
190 "\\lambda": "lambda",
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
191 "\\tau": "tau",
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
192 "\\Delta": "delta",
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
193 "\\delta": "delta",
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
194 "\\mu": "mu",
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
195 "\\rho": "rho",
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
196 "\\nabla": "del",
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
197 "\\ell": "ell",
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
198 "\\ldots": "dots",
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
199 // TODO: add entries for all accents
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
200 "\\hat": "hat",
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
201 "\\acute": "acute"
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
202 };
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
203 var powerMap = {
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
204 "prime": "prime",
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
205 "degree": "degrees",
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
206 "circle": "degrees",
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
207 "2": "squared",
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
208 "3": "cubed"
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
209 };
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
210 var openMap = {
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
211 "|": "open vertical bar",
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
212 ".": ""
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
213 };
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
214 var closeMap = {
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
215 "|": "close vertical bar",
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
216 ".": ""
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
217 };
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
218 var binMap = {
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
219 "+": "plus",
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
220 "-": "minus",
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
221 "\\pm": "plus minus",
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
222 "\\cdot": "dot",
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
223 "*": "times",
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
224 "/": "divided by",
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
225 "\\times": "times",
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
226 "\\div": "divided by",
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
227 "\\circ": "circle",
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
228 "\\bullet": "bullet"
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
229 };
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
230 var relMap = {
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
231 "=": "equals",
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
232 "\\approx": "approximately equals",
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
233 "≠": "does not equal",
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
234 "\\geq": "is greater than or equal to",
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
235 "\\ge": "is greater than or equal to",
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
236 "\\leq": "is less than or equal to",
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
237 "\\le": "is less than or equal to",
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
238 ">": "is greater than",
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
239 "<": "is less than",
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
240 "\\leftarrow": "left arrow",
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
241 "\\Leftarrow": "left arrow",
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
242 "\\rightarrow": "right arrow",
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
243 "\\Rightarrow": "right arrow",
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
244 ":": "colon"
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
245 };
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
246 var accentUnderMap = {
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
247 "\\underleftarrow": "left arrow",
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
248 "\\underrightarrow": "right arrow",
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
249 "\\underleftrightarrow": "left-right arrow",
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
250 "\\undergroup": "group",
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
251 "\\underlinesegment": "line segment",
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
252 "\\utilde": "tilde"
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
253 };
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
254
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
255 var buildString = function buildString(str, type, a11yStrings) {
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
256 if (!str) {
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
257 return;
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
258 }
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
259
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
260 var ret;
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
261
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
262 if (type === "open") {
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
263 ret = str in openMap ? openMap[str] : stringMap[str] || str;
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
264 } else if (type === "close") {
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
265 ret = str in closeMap ? closeMap[str] : stringMap[str] || str;
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
266 } else if (type === "bin") {
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
267 ret = binMap[str] || str;
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
268 } else if (type === "rel") {
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
269 ret = relMap[str] || str;
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
270 } else {
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
271 ret = stringMap[str] || str;
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
272 } // If the text to add is a number and there is already a string
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
273 // in the list and the last string is a number then we should
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
274 // combine them into a single number
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
275
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
276
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
277 if (/^\d+$/.test(ret) && a11yStrings.length > 0 && // TODO(kevinb): check that the last item in a11yStrings is a string
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
278 // I think we might be able to drop the nested arrays, which would make
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
279 // this easier to type - $FlowFixMe
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
280 /^\d+$/.test(a11yStrings[a11yStrings.length - 1])) {
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
281 a11yStrings[a11yStrings.length - 1] += ret;
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
282 } else if (ret) {
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
283 a11yStrings.push(ret);
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
284 }
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
285 };
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
286
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
287 var buildRegion = function buildRegion(a11yStrings, callback) {
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
288 var regionStrings = [];
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
289 a11yStrings.push(regionStrings);
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
290 callback(regionStrings);
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
291 };
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
292
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
293 var handleObject = function handleObject(tree, a11yStrings, atomType) {
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
294 // Everything else is assumed to be an object...
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
295 switch (tree.type) {
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
296 case "accent":
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
297 {
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
298 buildRegion(a11yStrings, function (a11yStrings) {
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
299 buildA11yStrings(tree.base, a11yStrings, atomType);
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
300 a11yStrings.push("with");
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
301 buildString(tree.label, "normal", a11yStrings);
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
302 a11yStrings.push("on top");
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
303 });
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
304 break;
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
305 }
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
306
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
307 case "accentUnder":
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
308 {
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
309 buildRegion(a11yStrings, function (a11yStrings) {
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
310 buildA11yStrings(tree.base, a11yStrings, atomType);
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
311 a11yStrings.push("with");
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
312 buildString(accentUnderMap[tree.label], "normal", a11yStrings);
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
313 a11yStrings.push("underneath");
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
314 });
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
315 break;
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
316 }
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
317
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
318 case "accent-token":
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
319 {
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
320 // Used internally by accent symbols.
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
321 break;
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
322 }
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
323
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
324 case "atom":
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
325 {
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
326 var text = tree.text;
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
327
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
328 switch (tree.family) {
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
329 case "bin":
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
330 {
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
331 buildString(text, "bin", a11yStrings);
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
332 break;
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
333 }
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
334
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
335 case "close":
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
336 {
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
337 buildString(text, "close", a11yStrings);
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
338 break;
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
339 }
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
340 // TODO(kevinb): figure out what should be done for inner
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
341
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
342 case "inner":
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
343 {
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
344 buildString(tree.text, "inner", a11yStrings);
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
345 break;
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
346 }
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
347
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
348 case "open":
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
349 {
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
350 buildString(text, "open", a11yStrings);
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
351 break;
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
352 }
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
353
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
354 case "punct":
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
355 {
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
356 buildString(text, "punct", a11yStrings);
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
357 break;
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
358 }
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
359
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
360 case "rel":
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
361 {
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
362 buildString(text, "rel", a11yStrings);
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
363 break;
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
364 }
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
365
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
366 default:
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
367 {
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
368 tree.family;
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
369 throw new Error("\"" + tree.family + "\" is not a valid atom type");
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
370 }
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
371 }
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
372
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
373 break;
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
374 }
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
375
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
376 case "color":
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
377 {
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
378 var color = tree.color.replace(/katex-/, "");
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
379 buildRegion(a11yStrings, function (regionStrings) {
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
380 regionStrings.push("start color " + color);
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
381 buildA11yStrings(tree.body, regionStrings, atomType);
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
382 regionStrings.push("end color " + color);
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
383 });
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
384 break;
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
385 }
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
386
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
387 case "color-token":
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
388 {
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
389 // Used by \color, \colorbox, and \fcolorbox but not directly rendered.
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
390 // It's a leaf node and has no children so just break.
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
391 break;
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
392 }
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
393
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
394 case "delimsizing":
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
395 {
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
396 if (tree.delim && tree.delim !== ".") {
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
397 buildString(tree.delim, "normal", a11yStrings);
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
398 }
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
399
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
400 break;
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
401 }
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
402
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
403 case "genfrac":
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
404 {
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
405 buildRegion(a11yStrings, function (regionStrings) {
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
406 // genfrac can have unbalanced delimiters
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
407 var leftDelim = tree.leftDelim,
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
408 rightDelim = tree.rightDelim; // NOTE: Not sure if this is a safe assumption
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
409 // hasBarLine true -> fraction, false -> binomial
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
410
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
411 if (tree.hasBarLine) {
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
412 regionStrings.push("start fraction");
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
413 leftDelim && buildString(leftDelim, "open", regionStrings);
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
414 buildA11yStrings(tree.numer, regionStrings, atomType);
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
415 regionStrings.push("divided by");
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
416 buildA11yStrings(tree.denom, regionStrings, atomType);
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
417 rightDelim && buildString(rightDelim, "close", regionStrings);
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
418 regionStrings.push("end fraction");
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
419 } else {
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
420 regionStrings.push("start binomial");
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
421 leftDelim && buildString(leftDelim, "open", regionStrings);
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
422 buildA11yStrings(tree.numer, regionStrings, atomType);
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
423 regionStrings.push("over");
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
424 buildA11yStrings(tree.denom, regionStrings, atomType);
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
425 rightDelim && buildString(rightDelim, "close", regionStrings);
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
426 regionStrings.push("end binomial");
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
427 }
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
428 });
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
429 break;
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
430 }
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
431
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
432 case "kern":
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
433 {
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
434 // No op: we don't attempt to present kerning information
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
435 // to the screen reader.
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
436 break;
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
437 }
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
438
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
439 case "leftright":
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
440 {
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
441 buildRegion(a11yStrings, function (regionStrings) {
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
442 buildString(tree.left, "open", regionStrings);
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
443 buildA11yStrings(tree.body, regionStrings, atomType);
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
444 buildString(tree.right, "close", regionStrings);
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
445 });
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
446 break;
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
447 }
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
448
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
449 case "leftright-right":
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
450 {
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
451 // TODO: double check that this is a no-op
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
452 break;
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
453 }
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
454
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
455 case "lap":
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
456 {
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
457 buildA11yStrings(tree.body, a11yStrings, atomType);
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
458 break;
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
459 }
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
460
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
461 case "mathord":
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
462 {
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
463 buildString(tree.text, "normal", a11yStrings);
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
464 break;
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
465 }
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
466
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
467 case "op":
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
468 {
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
469 var body = tree.body,
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
470 name = tree.name;
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
471
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
472 if (body) {
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
473 buildA11yStrings(body, a11yStrings, atomType);
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
474 } else if (name) {
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
475 buildString(name, "normal", a11yStrings);
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
476 }
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
477
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
478 break;
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
479 }
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
480
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
481 case "op-token":
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
482 {
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
483 // Used internally by operator symbols.
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
484 buildString(tree.text, atomType, a11yStrings);
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
485 break;
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
486 }
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
487
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
488 case "ordgroup":
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
489 {
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
490 buildA11yStrings(tree.body, a11yStrings, atomType);
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
491 break;
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
492 }
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
493
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
494 case "overline":
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
495 {
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
496 buildRegion(a11yStrings, function (a11yStrings) {
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
497 a11yStrings.push("start overline");
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
498 buildA11yStrings(tree.body, a11yStrings, atomType);
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
499 a11yStrings.push("end overline");
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
500 });
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
501 break;
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
502 }
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
503
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
504 case "phantom":
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
505 {
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
506 a11yStrings.push("empty space");
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
507 break;
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
508 }
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
509
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
510 case "raisebox":
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
511 {
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
512 buildA11yStrings(tree.body, a11yStrings, atomType);
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
513 break;
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
514 }
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
515
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
516 case "rule":
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
517 {
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
518 a11yStrings.push("rectangle");
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
519 break;
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
520 }
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
521
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
522 case "sizing":
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
523 {
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
524 buildA11yStrings(tree.body, a11yStrings, atomType);
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
525 break;
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
526 }
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
527
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
528 case "spacing":
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
529 {
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
530 a11yStrings.push("space");
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
531 break;
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
532 }
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
533
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
534 case "styling":
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
535 {
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
536 // We ignore the styling and just pass through the contents
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
537 buildA11yStrings(tree.body, a11yStrings, atomType);
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
538 break;
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
539 }
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
540
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
541 case "sqrt":
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
542 {
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
543 buildRegion(a11yStrings, function (regionStrings) {
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
544 var body = tree.body,
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
545 index = tree.index;
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
546
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
547 if (index) {
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
548 var indexString = flatten(buildA11yStrings(index, [], atomType)).join(",");
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
549
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
550 if (indexString === "3") {
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
551 regionStrings.push("cube root of");
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
552 buildA11yStrings(body, regionStrings, atomType);
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
553 regionStrings.push("end cube root");
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
554 return;
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
555 }
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
556
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
557 regionStrings.push("root");
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
558 regionStrings.push("start index");
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
559 buildA11yStrings(index, regionStrings, atomType);
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
560 regionStrings.push("end index");
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
561 return;
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
562 }
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
563
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
564 regionStrings.push("square root of");
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
565 buildA11yStrings(body, regionStrings, atomType);
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
566 regionStrings.push("end square root");
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
567 });
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
568 break;
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
569 }
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
570
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
571 case "supsub":
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
572 {
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
573 var base = tree.base,
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
574 sub = tree.sub,
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
575 sup = tree.sup;
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
576 var isLog = false;
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
577
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
578 if (base) {
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
579 buildA11yStrings(base, a11yStrings, atomType);
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
580 isLog = base.type === "op" && base.name === "\\log";
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
581 }
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
582
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
583 if (sub) {
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
584 var regionName = isLog ? "base" : "subscript";
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
585 buildRegion(a11yStrings, function (regionStrings) {
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
586 regionStrings.push("start " + regionName);
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
587 buildA11yStrings(sub, regionStrings, atomType);
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
588 regionStrings.push("end " + regionName);
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
589 });
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
590 }
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
591
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
592 if (sup) {
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
593 buildRegion(a11yStrings, function (regionStrings) {
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
594 var supString = flatten(buildA11yStrings(sup, [], atomType)).join(",");
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
595
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
596 if (supString in powerMap) {
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
597 regionStrings.push(powerMap[supString]);
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
598 return;
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
599 }
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
600
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
601 regionStrings.push("start superscript");
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
602 buildA11yStrings(sup, regionStrings, atomType);
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
603 regionStrings.push("end superscript");
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
604 });
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
605 }
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
606
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
607 break;
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
608 }
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
609
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
610 case "text":
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
611 {
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
612 // TODO: handle other fonts
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
613 if (tree.font === "\\textbf") {
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
614 buildRegion(a11yStrings, function (regionStrings) {
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
615 regionStrings.push("start bold text");
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
616 buildA11yStrings(tree.body, regionStrings, atomType);
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
617 regionStrings.push("end bold text");
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
618 });
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
619 break;
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
620 }
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
621
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
622 buildRegion(a11yStrings, function (regionStrings) {
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
623 regionStrings.push("start text");
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
624 buildA11yStrings(tree.body, regionStrings, atomType);
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
625 regionStrings.push("end text");
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
626 });
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
627 break;
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
628 }
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
629
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
630 case "textord":
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
631 {
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
632 buildString(tree.text, atomType, a11yStrings);
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
633 break;
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
634 }
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
635
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
636 case "smash":
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
637 {
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
638 buildA11yStrings(tree.body, a11yStrings, atomType);
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
639 break;
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
640 }
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
641
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
642 case "enclose":
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
643 {
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
644 // TODO: create a map for these.
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
645 // TODO: differentiate between a body with a single atom, e.g.
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
646 // "cancel a" instead of "start cancel, a, end cancel"
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
647 if (/cancel/.test(tree.label)) {
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
648 buildRegion(a11yStrings, function (regionStrings) {
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
649 regionStrings.push("start cancel");
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
650 buildA11yStrings(tree.body, regionStrings, atomType);
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
651 regionStrings.push("end cancel");
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
652 });
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
653 break;
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
654 } else if (/box/.test(tree.label)) {
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
655 buildRegion(a11yStrings, function (regionStrings) {
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
656 regionStrings.push("start box");
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
657 buildA11yStrings(tree.body, regionStrings, atomType);
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
658 regionStrings.push("end box");
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
659 });
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
660 break;
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
661 } else if (/sout/.test(tree.label)) {
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
662 buildRegion(a11yStrings, function (regionStrings) {
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
663 regionStrings.push("start strikeout");
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
664 buildA11yStrings(tree.body, regionStrings, atomType);
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
665 regionStrings.push("end strikeout");
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
666 });
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
667 break;
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
668 }
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
669
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
670 throw new Error("KaTeX-a11y: enclose node with " + tree.label + " not supported yet");
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
671 }
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
672
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
673 case "vphantom":
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
674 {
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
675 throw new Error("KaTeX-a11y: vphantom not implemented yet");
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
676 }
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
677
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
678 case "hphantom":
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
679 {
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
680 throw new Error("KaTeX-a11y: hphantom not implemented yet");
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
681 }
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
682
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
683 case "operatorname":
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
684 {
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
685 buildA11yStrings(tree.body, a11yStrings, atomType);
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
686 break;
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
687 }
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
688
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
689 case "array":
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
690 {
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
691 throw new Error("KaTeX-a11y: array not implemented yet");
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
692 }
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
693
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
694 case "raw":
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
695 {
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
696 throw new Error("KaTeX-a11y: raw not implemented yet");
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
697 }
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
698
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
699 case "size":
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
700 {
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
701 // Although there are nodes of type "size" in the parse tree, they have
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
702 // no semantic meaning and should be ignored.
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
703 break;
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
704 }
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
705
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
706 case "url":
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
707 {
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
708 throw new Error("KaTeX-a11y: url not implemented yet");
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
709 }
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
710
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
711 case "tag":
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
712 {
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
713 throw new Error("KaTeX-a11y: tag not implemented yet");
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
714 }
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
715
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
716 case "verb":
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
717 {
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
718 buildString("start verbatim", "normal", a11yStrings);
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
719 buildString(tree.body, "normal", a11yStrings);
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
720 buildString("end verbatim", "normal", a11yStrings);
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
721 break;
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
722 }
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
723
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
724 case "environment":
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
725 {
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
726 throw new Error("KaTeX-a11y: environment not implemented yet");
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
727 }
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
728
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
729 case "horizBrace":
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
730 {
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
731 buildString("start " + tree.label.slice(1), "normal", a11yStrings);
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
732 buildA11yStrings(tree.base, a11yStrings, atomType);
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
733 buildString("end " + tree.label.slice(1), "normal", a11yStrings);
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
734 break;
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
735 }
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
736
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
737 case "infix":
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
738 {
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
739 // All infix nodes are replace with other nodes.
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
740 break;
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
741 }
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
742
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
743 case "includegraphics":
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
744 {
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
745 throw new Error("KaTeX-a11y: includegraphics not implemented yet");
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
746 }
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
747
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
748 case "font":
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
749 {
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
750 // TODO: callout the start/end of specific fonts
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
751 // TODO: map \BBb{N} to "the naturals" or something like that
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
752 buildA11yStrings(tree.body, a11yStrings, atomType);
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
753 break;
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
754 }
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
755
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
756 case "href":
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
757 {
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
758 throw new Error("KaTeX-a11y: href not implemented yet");
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
759 }
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
760
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
761 case "cr":
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
762 {
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
763 // This is used by environments.
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
764 throw new Error("KaTeX-a11y: cr not implemented yet");
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
765 }
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
766
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
767 case "underline":
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
768 {
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
769 buildRegion(a11yStrings, function (a11yStrings) {
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
770 a11yStrings.push("start underline");
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
771 buildA11yStrings(tree.body, a11yStrings, atomType);
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
772 a11yStrings.push("end underline");
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
773 });
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
774 break;
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
775 }
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
776
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
777 case "xArrow":
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
778 {
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
779 throw new Error("KaTeX-a11y: xArrow not implemented yet");
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
780 }
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
781
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
782 case "mclass":
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
783 {
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
784 // \neq and \ne are macros so we let "htmlmathml" render the mathmal
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
785 // side of things and extract the text from that.
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
786 var _atomType = tree.mclass.slice(1); // $FlowFixMe: drop the leading "m" from the values in mclass
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
787
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
788
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
789 buildA11yStrings(tree.body, a11yStrings, _atomType);
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
790 break;
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
791 }
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
792
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
793 case "mathchoice":
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
794 {
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
795 // TODO: track which which style we're using, e.g. dispaly, text, etc.
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
796 // default to text style if even that may not be the correct style
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
797 buildA11yStrings(tree.text, a11yStrings, atomType);
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
798 break;
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
799 }
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
800
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
801 case "htmlmathml":
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
802 {
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
803 buildA11yStrings(tree.mathml, a11yStrings, atomType);
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
804 break;
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
805 }
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
806
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
807 case "middle":
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
808 {
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
809 buildString(tree.delim, atomType, a11yStrings);
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
810 break;
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
811 }
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
812
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
813 default:
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
814 tree.type;
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
815 throw new Error("KaTeX a11y un-recognized type: " + tree.type);
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
816 }
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
817 };
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
818
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
819 var buildA11yStrings = function buildA11yStrings(tree, a11yStrings, atomType) {
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
820 if (a11yStrings === void 0) {
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
821 a11yStrings = [];
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
822 }
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
823
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
824 if (tree instanceof Array) {
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
825 for (var i = 0; i < tree.length; i++) {
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
826 buildA11yStrings(tree[i], a11yStrings, atomType);
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
827 }
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
828 } else {
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
829 handleObject(tree, a11yStrings, atomType);
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
830 }
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
831
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
832 return a11yStrings;
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
833 };
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
834
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
835 var flatten = function flatten(array) {
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
836 var result = [];
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
837 array.forEach(function (item) {
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
838 if (item instanceof Array) {
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
839 result = result.concat(flatten(item));
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
840 } else {
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
841 result.push(item);
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
842 }
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
843 });
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
844 return result;
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
845 };
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
846
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
847 var renderA11yString = function renderA11yString(text, settings) {
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
848 var tree = katex__WEBPACK_IMPORTED_MODULE_0___default.a.__parse(text, settings);
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
849
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
850 var a11yStrings = buildA11yStrings(tree, [], "normal");
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
851 return flatten(a11yStrings).join(", ");
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
852 };
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
853
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
854 /* harmony default export */ __webpack_exports__["default"] = (renderA11yString);
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
855
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
856 /***/ })
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
857 /******/ ])["default"];
4a25b534c81c Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
858 });