Mercurial > repos > public > wdown
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 |
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 }); |