@pie-lib/math-rendering 2.3.8 → 2.3.10-next.179
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.json +30 -0
- package/CHANGELOG.md +10 -38
- package/lib/index.js +4 -4
- package/lib/mstack/chtml.js +24 -20
- package/lib/mstack/chtml.js.map +1 -1
- package/lib/mstack/mml.js +29 -25
- package/lib/mstack/mml.js.map +1 -1
- package/lib/normalization.js +8 -4
- package/lib/normalization.js.map +1 -1
- package/lib/render-math.js +48 -15
- package/lib/render-math.js.map +1 -1
- package/package.json +3 -3
- package/src/render-math.js +43 -7
package/CHANGELOG.json
CHANGED
|
@@ -638,5 +638,35 @@
|
|
|
638
638
|
"committerDate": "2021-02-22 09:01:40 +0200",
|
|
639
639
|
"isTagged": true,
|
|
640
640
|
"tag": "@pie-lib/math-rendering@2.3.5"
|
|
641
|
+
},
|
|
642
|
+
{
|
|
643
|
+
"type": "fix",
|
|
644
|
+
"scope": "math-rendering",
|
|
645
|
+
"subject": "fix symbols in math markup that trigger undefined control sequence error PD-1267, PD-368, PD-1173",
|
|
646
|
+
"merge": null,
|
|
647
|
+
"header": "fix(math-rendering): fix symbols in math markup that trigger undefined control sequence error PD-1267, PD-368, PD-1173",
|
|
648
|
+
"body": null,
|
|
649
|
+
"footer": null,
|
|
650
|
+
"notes": [],
|
|
651
|
+
"hash": "a7d9934bea5d0305daa6d75820c007d1e76f3fbb",
|
|
652
|
+
"gitTags": "",
|
|
653
|
+
"committerDate": "2021-08-17 10:59:50 +0300",
|
|
654
|
+
"isTagged": true,
|
|
655
|
+
"tag": "@pie-lib/math-rendering@2.3.9"
|
|
656
|
+
},
|
|
657
|
+
{
|
|
658
|
+
"type": "fix",
|
|
659
|
+
"scope": null,
|
|
660
|
+
"subject": "wip",
|
|
661
|
+
"merge": null,
|
|
662
|
+
"header": "fix: wip",
|
|
663
|
+
"body": null,
|
|
664
|
+
"footer": null,
|
|
665
|
+
"notes": [],
|
|
666
|
+
"hash": "fe4316df075edfc2c0565641b58c4ca453057651",
|
|
667
|
+
"gitTags": " (origin/fix/fix-math-module)",
|
|
668
|
+
"committerDate": "2021-09-06 13:29:44 +0100",
|
|
669
|
+
"isTagged": true,
|
|
670
|
+
"tag": "@pie-lib/math-rendering@2.3.10"
|
|
641
671
|
}
|
|
642
672
|
]
|
package/CHANGELOG.md
CHANGED
|
@@ -3,87 +3,59 @@
|
|
|
3
3
|
All notable changes to this project will be documented in this file.
|
|
4
4
|
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
|
5
5
|
|
|
6
|
-
## [2.3.
|
|
6
|
+
## [2.3.9](https://github.com/pie-framework/pie-lib/compare/@pie-lib/math-rendering@2.3.8...@pie-lib/math-rendering@2.3.9) (2021-08-30)
|
|
7
7
|
|
|
8
|
-
**Note:** Version bump only for package @pie-lib/math-rendering
|
|
9
8
|
|
|
9
|
+
### Bug Fixes
|
|
10
10
|
|
|
11
|
+
* **math-rendering:** fix symbols in math markup that trigger undefined control sequence error PD-1267, PD-368, PD-1173 ([a7d9934](https://github.com/pie-framework/pie-lib/commit/a7d9934))
|
|
11
12
|
|
|
12
13
|
|
|
13
14
|
|
|
14
|
-
## [2.3.6](https://github.com/pie-framework/pie-lib/compare/@pie-lib/math-rendering@2.3.5...@pie-lib/math-rendering@2.3.6) (2021-03-01)
|
|
15
15
|
|
|
16
|
-
**Note:** Version bump only for package @pie-lib/math-rendering
|
|
17
16
|
|
|
17
|
+
## [2.3.8](https://github.com/pie-framework/pie-lib/compare/@pie-lib/math-rendering@2.3.6...@pie-lib/math-rendering@2.3.8) (2021-06-25)
|
|
18
18
|
|
|
19
|
+
**Note:** Version bump only for package @pie-lib/math-rendering
|
|
19
20
|
|
|
21
|
+
## [2.3.6](https://github.com/pie-framework/pie-lib/compare/@pie-lib/math-rendering@2.3.5...@pie-lib/math-rendering@2.3.6) (2021-03-01)
|
|
20
22
|
|
|
23
|
+
**Note:** Version bump only for package @pie-lib/math-rendering
|
|
21
24
|
|
|
22
25
|
## [2.3.5](https://github.com/pie-framework/pie-lib/compare/@pie-lib/math-rendering@2.3.4...@pie-lib/math-rendering@2.3.5) (2021-03-01)
|
|
23
26
|
|
|
24
|
-
|
|
25
27
|
### Bug Fixes
|
|
26
28
|
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
29
|
+
- **math-rendering:** linebreak rendering fixed for mathquill custom elements - PD-787 ([5216f6a](https://github.com/pie-framework/pie-lib/commit/5216f6a))
|
|
32
30
|
|
|
33
31
|
## [2.3.4](https://github.com/pie-framework/pie-lib/compare/@pie-lib/math-rendering@2.3.3...@pie-lib/math-rendering@2.3.4) (2021-02-15)
|
|
34
32
|
|
|
35
33
|
**Note:** Version bump only for package @pie-lib/math-rendering
|
|
36
34
|
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
35
|
## [2.3.3](https://github.com/pie-framework/pie-lib/compare/@pie-lib/math-rendering@2.3.1...@pie-lib/math-rendering@2.3.3) (2021-02-15)
|
|
42
36
|
|
|
43
37
|
**Note:** Version bump only for package @pie-lib/math-rendering
|
|
44
38
|
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
39
|
## [2.3.1](https://github.com/pie-framework/pie-lib/compare/@pie-lib/math-rendering@2.3.0...@pie-lib/math-rendering@2.3.1) (2021-01-28)
|
|
50
40
|
|
|
51
|
-
|
|
52
41
|
### Bug Fixes
|
|
53
42
|
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
43
|
+
- add lodash dependency ([de2227f](https://github.com/pie-framework/pie-lib/commit/de2227f))
|
|
59
44
|
|
|
60
45
|
# [2.3.0](https://github.com/pie-framework/pie-lib/compare/@pie-lib/math-rendering@2.2.4...@pie-lib/math-rendering@2.3.0) (2021-01-25)
|
|
61
46
|
|
|
62
|
-
|
|
63
47
|
### Features
|
|
64
48
|
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
49
|
+
- demo changes include for the issue PD-368 ([c493d9f](https://github.com/pie-framework/pie-lib/commit/c493d9f))
|
|
70
50
|
|
|
71
51
|
## [2.2.4](https://github.com/pie-framework/pie-lib/compare/@pie-lib/math-rendering@2.2.3...@pie-lib/math-rendering@2.2.4) (2021-01-11)
|
|
72
52
|
|
|
73
53
|
**Note:** Version bump only for package @pie-lib/math-rendering
|
|
74
54
|
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
55
|
## [2.2.3](https://github.com/pie-framework/pie-lib/compare/@pie-lib/math-rendering@2.2.2...@pie-lib/math-rendering@2.2.3) (2020-10-26)
|
|
80
56
|
|
|
81
57
|
**Note:** Version bump only for package @pie-lib/math-rendering
|
|
82
58
|
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
59
|
## [2.2.2](https://github.com/pie-framework/pie-lib/compare/@pie-lib/math-rendering@2.2.1...@pie-lib/math-rendering@2.2.2) (2020-10-26)
|
|
88
60
|
|
|
89
61
|
**Note:** Version bump only for package @pie-lib/math-rendering
|
package/lib/index.js
CHANGED
|
@@ -9,16 +9,16 @@ Object.defineProperty(exports, "renderMath", {
|
|
|
9
9
|
return _renderMath["default"];
|
|
10
10
|
}
|
|
11
11
|
});
|
|
12
|
-
Object.defineProperty(exports, "
|
|
12
|
+
Object.defineProperty(exports, "unWrapMath", {
|
|
13
13
|
enumerable: true,
|
|
14
14
|
get: function get() {
|
|
15
|
-
return _normalization.
|
|
15
|
+
return _normalization.unWrapMath;
|
|
16
16
|
}
|
|
17
17
|
});
|
|
18
|
-
Object.defineProperty(exports, "
|
|
18
|
+
Object.defineProperty(exports, "wrapMath", {
|
|
19
19
|
enumerable: true,
|
|
20
20
|
get: function get() {
|
|
21
|
-
return _normalization.
|
|
21
|
+
return _normalization.wrapMath;
|
|
22
22
|
}
|
|
23
23
|
});
|
|
24
24
|
|
package/lib/mstack/chtml.js
CHANGED
|
@@ -1,9 +1,11 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
+
function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }
|
|
4
|
+
|
|
3
5
|
Object.defineProperty(exports, "__esModule", {
|
|
4
6
|
value: true
|
|
5
7
|
});
|
|
6
|
-
exports.
|
|
8
|
+
exports.getStackData = exports.Row = exports.Line = exports.CHTMLmstack = void 0;
|
|
7
9
|
|
|
8
10
|
var _Wrapper = require("mathjax-full/js/output/chtml/Wrapper");
|
|
9
11
|
|
|
@@ -11,31 +13,37 @@ var _lodash = _interopRequireDefault(require("lodash"));
|
|
|
11
13
|
|
|
12
14
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
|
|
13
15
|
|
|
14
|
-
function
|
|
16
|
+
function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, "prototype", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }
|
|
17
|
+
|
|
18
|
+
function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }
|
|
19
|
+
|
|
20
|
+
function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }
|
|
15
21
|
|
|
16
|
-
function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } return _assertThisInitialized(self); }
|
|
22
|
+
function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } else if (call !== void 0) { throw new TypeError("Derived constructors may only return object or undefined"); } return _assertThisInitialized(self); }
|
|
17
23
|
|
|
18
24
|
function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; }
|
|
19
25
|
|
|
26
|
+
function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
|
|
27
|
+
|
|
20
28
|
function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }
|
|
21
29
|
|
|
22
|
-
function
|
|
30
|
+
function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }
|
|
23
31
|
|
|
24
|
-
function
|
|
32
|
+
function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
|
|
25
33
|
|
|
26
|
-
function
|
|
34
|
+
function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
|
|
27
35
|
|
|
28
|
-
function
|
|
36
|
+
function _iterableToArray(iter) { if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter); }
|
|
29
37
|
|
|
30
|
-
function
|
|
38
|
+
function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }
|
|
31
39
|
|
|
32
|
-
function
|
|
40
|
+
function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
|
|
33
41
|
|
|
34
42
|
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
|
|
35
43
|
|
|
36
44
|
function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }
|
|
37
45
|
|
|
38
|
-
function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }
|
|
46
|
+
function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; }
|
|
39
47
|
|
|
40
48
|
var reduceText = function reduceText(acc, n) {
|
|
41
49
|
if (n.node && n.node.kind === 'text') {
|
|
@@ -45,9 +53,7 @@ var reduceText = function reduceText(acc, n) {
|
|
|
45
53
|
return acc;
|
|
46
54
|
};
|
|
47
55
|
|
|
48
|
-
var Line =
|
|
49
|
-
/*#__PURE__*/
|
|
50
|
-
function () {
|
|
56
|
+
var Line = /*#__PURE__*/function () {
|
|
51
57
|
function Line() {
|
|
52
58
|
_classCallCheck(this, Line);
|
|
53
59
|
|
|
@@ -66,9 +72,7 @@ function () {
|
|
|
66
72
|
|
|
67
73
|
exports.Line = Line;
|
|
68
74
|
|
|
69
|
-
var Row =
|
|
70
|
-
/*#__PURE__*/
|
|
71
|
-
function () {
|
|
75
|
+
var Row = /*#__PURE__*/function () {
|
|
72
76
|
function Row(columns, operator) {
|
|
73
77
|
_classCallCheck(this, Row);
|
|
74
78
|
|
|
@@ -197,11 +201,11 @@ var getStackData = function getStackData(mstack) {
|
|
|
197
201
|
|
|
198
202
|
exports.getStackData = getStackData;
|
|
199
203
|
|
|
200
|
-
var CHTMLmstack =
|
|
201
|
-
/*#__PURE__*/
|
|
202
|
-
function (_CHTMLWrapper) {
|
|
204
|
+
var CHTMLmstack = /*#__PURE__*/function (_CHTMLWrapper) {
|
|
203
205
|
_inherits(CHTMLmstack, _CHTMLWrapper);
|
|
204
206
|
|
|
207
|
+
var _super = _createSuper(CHTMLmstack);
|
|
208
|
+
|
|
205
209
|
function CHTMLmstack(factory, node) {
|
|
206
210
|
var _this;
|
|
207
211
|
|
|
@@ -209,7 +213,7 @@ function (_CHTMLWrapper) {
|
|
|
209
213
|
|
|
210
214
|
_classCallCheck(this, CHTMLmstack);
|
|
211
215
|
|
|
212
|
-
_this =
|
|
216
|
+
_this = _super.call(this, factory, node, parent);
|
|
213
217
|
_this.ce = _this.adaptor.document.createElement.bind(_this.adaptor.document);
|
|
214
218
|
return _this;
|
|
215
219
|
}
|
package/lib/mstack/chtml.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/mstack/chtml.js"],"names":["reduceText","acc","n","node","kind","text","Line","Row","columns","operator","count","direction","length","Error","diff","padding","_","times","map","mathNodeToCharArray","mn","childNodes","reduce","split","toColumnArray","child","console","warn","toCHTML","rowStack","f","first","nodes","tail","flatten","undefined","getStackData","mstack","compact","CHTMLmstack","factory","parent","ce","adaptor","document","createElement","bind","chtml","standardCHTMLnode","stackData","maxCols","r","table","appendChild","forEach","row","tr","td","setAttribute","textContent","cols","pad","c","t","CHTMLWrapper","styles","border"],"mappings":"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","sourcesContent":["import { CHTMLWrapper } from 'mathjax-full/js/output/chtml/Wrapper';\nimport _ from 'lodash';\n\nconst reduceText = (acc, n) => {\n if (n.node && n.node.kind === 'text') {\n acc += n.node.text;\n }\n return acc;\n};\n\nexport class Line {\n constructor() {\n this.kind = 'line';\n }\n\n get columns() {\n return [];\n }\n}\n\nexport class Row {\n constructor(columns, operator) {\n this.kind = 'row';\n this.operator = operator;\n this.columns = columns;\n }\n\n pad(count, direction = 'right') {\n if (count < this.columns.length) {\n throw new Error('no');\n }\n\n const diff = count - this.columns.length;\n\n const padding = _.times(diff).map(n => '__pad__');\n return direction === 'right' ? [...padding, ...this.columns] : [...this.columns, ...padding];\n }\n}\n\nconst mathNodeToCharArray = mn => {\n const text = mn.childNodes.reduce(reduceText, '');\n return text.split('');\n};\n\n/**\n * Convert child a column entry\n * @param {*} child\n * @return an array of column content\n */\nconst toColumnArray = child => {\n if (!child || !child.kind) {\n return [];\n }\n\n if (child.kind === 'msrow') {\n throw new Error('msrow in msrow?');\n }\n\n if (child.kind === 'mo') {\n // We are going to treat this operator as a text array.\n // It's probably going to be a decimal point\n console.warn('mo that is not 1st node in msrow?');\n return mathNodeToCharArray(child);\n // throw new Error('mo must be first child of msrow');\n }\n\n if (child.kind === 'mn') {\n return mathNodeToCharArray(child);\n }\n\n if (child.toCHTML) {\n return child;\n }\n};\n\n/**\n * convert mstack chtml childNodes into a Row\n * @param child chtml child node of mstack\n * @return Row | Line\n */\nconst rowStack = child => {\n if (!child || !child.kind) {\n return;\n }\n\n if (child.kind === 'msrow') {\n if (!child.childNodes || child.childNodes.length === 0) {\n return new Row([]);\n }\n const f = _.first(child.childNodes);\n const nodes = f && f.kind === 'mo' ? _.tail(child.childNodes) : child.childNodes;\n\n const columns = _.flatten(nodes.map(toColumnArray));\n\n return new Row(columns, f.kind === 'mo' ? f : undefined);\n }\n\n if (child.kind === 'mn') {\n const columns = mathNodeToCharArray(child);\n return new Row(columns, undefined);\n }\n\n if (child.kind === 'mo') {\n console.warn('mo on its own row?');\n return new Row([], child);\n }\n\n if (child.kind === 'msline') {\n return new Line();\n }\n\n if (child.toCHTML) {\n return new Row([child]);\n }\n};\n\n/** convert MathJax chtml tree to Row[]\n * @param mstack the root of the mathjax chtml tree\n * @return Row[]\n */\n\nexport const getStackData = mstack => {\n if (!mstack || !mstack.childNodes) {\n return [];\n }\n return _.compact(mstack.childNodes.map(rowStack));\n};\n\nexport class CHTMLmstack extends CHTMLWrapper {\n constructor(factory, node, parent = null) {\n super(factory, node, parent);\n\n this.ce = this.adaptor.document.createElement.bind(this.adaptor.document);\n }\n\n toCHTML(parent) {\n const chtml = this.standardCHTMLnode(parent);\n\n const stackData = getStackData(this);\n\n // console.log('stackData', stackData);\n const maxCols = stackData.reduce((acc, r) => {\n if (r && r.columns.length > acc) {\n acc = r.columns.length;\n }\n return acc;\n }, 0);\n\n const table = this.ce('table');\n chtml.appendChild(table);\n\n stackData.forEach(row => {\n const tr = this.ce('tr');\n table.appendChild(tr);\n\n if (row.kind === 'row') {\n const td = this.ce('td');\n tr.appendChild(td);\n if (row.operator && row.operator.toCHTML) {\n td.setAttribute('class', 'inner');\n row.operator.toCHTML(td);\n } else {\n td.textContent = '';\n }\n\n // align right for now:\n const cols = row.pad(maxCols, 'right');\n cols.forEach(c => {\n const t = this.ce('td');\n tr.appendChild(t);\n if (c === '__pad__') {\n t.textContent = '';\n } else if (typeof c === 'string') {\n t.textContent = c;\n } else if (c.kind === 'none') {\n t.textContent = '';\n } else if (c.toCHTML) {\n t.setAttribute('class', 'inner');\n c.toCHTML(t);\n }\n });\n } else if (row.kind === 'line') {\n const td = this.ce('td');\n tr.appendChild(td);\n td.setAttribute('colspan', maxCols + 1);\n td.setAttribute('class', 'mjx-line');\n td.textContent = '';\n }\n });\n }\n}\nCHTMLmstack.styles = {\n 'mjx-mstack > table': {\n 'line-height': 'initial',\n border: 'solid 0px red',\n 'border-spacing': '0em',\n 'border-collapse': 'separate'\n },\n 'mjx-mstack > table > tr': {\n 'line-height': 'initial'\n },\n 'mjx-mstack > table > tr > td': {\n // padding: '1.2rem',\n border: 'solid 0px blue',\n 'font-family': 'sans-serif',\n 'line-height': 'initial'\n },\n 'mjx-mstack > table > tr > td.inner': {\n 'font-family': 'inherit'\n },\n 'mjx-mstack > table > tr > .mjx-line': {\n padding: 0,\n 'border-top': 'solid 1px black'\n }\n};\n"],"file":"chtml.js"}
|
|
1
|
+
{"version":3,"sources":["../../src/mstack/chtml.js"],"names":["reduceText","acc","n","node","kind","text","Line","Row","columns","operator","count","direction","length","Error","diff","padding","_","times","map","mathNodeToCharArray","mn","childNodes","reduce","split","toColumnArray","child","console","warn","toCHTML","rowStack","f","first","nodes","tail","flatten","undefined","getStackData","mstack","compact","CHTMLmstack","factory","parent","ce","adaptor","document","createElement","bind","chtml","standardCHTMLnode","stackData","maxCols","r","table","appendChild","forEach","row","tr","td","setAttribute","textContent","cols","pad","c","t","CHTMLWrapper","styles","border"],"mappings":"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","sourcesContent":["import { CHTMLWrapper } from 'mathjax-full/js/output/chtml/Wrapper';\nimport _ from 'lodash';\n\nconst reduceText = (acc, n) => {\n if (n.node && n.node.kind === 'text') {\n acc += n.node.text;\n }\n return acc;\n};\n\nexport class Line {\n constructor() {\n this.kind = 'line';\n }\n\n get columns() {\n return [];\n }\n}\n\nexport class Row {\n constructor(columns, operator) {\n this.kind = 'row';\n this.operator = operator;\n this.columns = columns;\n }\n\n pad(count, direction = 'right') {\n if (count < this.columns.length) {\n throw new Error('no');\n }\n\n const diff = count - this.columns.length;\n\n const padding = _.times(diff).map(n => '__pad__');\n return direction === 'right' ? [...padding, ...this.columns] : [...this.columns, ...padding];\n }\n}\n\nconst mathNodeToCharArray = mn => {\n const text = mn.childNodes.reduce(reduceText, '');\n return text.split('');\n};\n\n/**\n * Convert child a column entry\n * @param {*} child\n * @return an array of column content\n */\nconst toColumnArray = child => {\n if (!child || !child.kind) {\n return [];\n }\n\n if (child.kind === 'msrow') {\n throw new Error('msrow in msrow?');\n }\n\n if (child.kind === 'mo') {\n // We are going to treat this operator as a text array.\n // It's probably going to be a decimal point\n console.warn('mo that is not 1st node in msrow?');\n return mathNodeToCharArray(child);\n // throw new Error('mo must be first child of msrow');\n }\n\n if (child.kind === 'mn') {\n return mathNodeToCharArray(child);\n }\n\n if (child.toCHTML) {\n return child;\n }\n};\n\n/**\n * convert mstack chtml childNodes into a Row\n * @param child chtml child node of mstack\n * @return Row | Line\n */\nconst rowStack = child => {\n if (!child || !child.kind) {\n return;\n }\n\n if (child.kind === 'msrow') {\n if (!child.childNodes || child.childNodes.length === 0) {\n return new Row([]);\n }\n const f = _.first(child.childNodes);\n const nodes = f && f.kind === 'mo' ? _.tail(child.childNodes) : child.childNodes;\n\n const columns = _.flatten(nodes.map(toColumnArray));\n\n return new Row(columns, f.kind === 'mo' ? f : undefined);\n }\n\n if (child.kind === 'mn') {\n const columns = mathNodeToCharArray(child);\n return new Row(columns, undefined);\n }\n\n if (child.kind === 'mo') {\n console.warn('mo on its own row?');\n return new Row([], child);\n }\n\n if (child.kind === 'msline') {\n return new Line();\n }\n\n if (child.toCHTML) {\n return new Row([child]);\n }\n};\n\n/** convert MathJax chtml tree to Row[]\n * @param mstack the root of the mathjax chtml tree\n * @return Row[]\n */\n\nexport const getStackData = mstack => {\n if (!mstack || !mstack.childNodes) {\n return [];\n }\n return _.compact(mstack.childNodes.map(rowStack));\n};\n\nexport class CHTMLmstack extends CHTMLWrapper {\n constructor(factory, node, parent = null) {\n super(factory, node, parent);\n\n this.ce = this.adaptor.document.createElement.bind(this.adaptor.document);\n }\n\n toCHTML(parent) {\n const chtml = this.standardCHTMLnode(parent);\n\n const stackData = getStackData(this);\n\n // console.log('stackData', stackData);\n const maxCols = stackData.reduce((acc, r) => {\n if (r && r.columns.length > acc) {\n acc = r.columns.length;\n }\n return acc;\n }, 0);\n\n const table = this.ce('table');\n chtml.appendChild(table);\n\n stackData.forEach(row => {\n const tr = this.ce('tr');\n table.appendChild(tr);\n\n if (row.kind === 'row') {\n const td = this.ce('td');\n tr.appendChild(td);\n if (row.operator && row.operator.toCHTML) {\n td.setAttribute('class', 'inner');\n row.operator.toCHTML(td);\n } else {\n td.textContent = '';\n }\n\n // align right for now:\n const cols = row.pad(maxCols, 'right');\n cols.forEach(c => {\n const t = this.ce('td');\n tr.appendChild(t);\n if (c === '__pad__') {\n t.textContent = '';\n } else if (typeof c === 'string') {\n t.textContent = c;\n } else if (c.kind === 'none') {\n t.textContent = '';\n } else if (c.toCHTML) {\n t.setAttribute('class', 'inner');\n c.toCHTML(t);\n }\n });\n } else if (row.kind === 'line') {\n const td = this.ce('td');\n tr.appendChild(td);\n td.setAttribute('colspan', maxCols + 1);\n td.setAttribute('class', 'mjx-line');\n td.textContent = '';\n }\n });\n }\n}\nCHTMLmstack.styles = {\n 'mjx-mstack > table': {\n 'line-height': 'initial',\n border: 'solid 0px red',\n 'border-spacing': '0em',\n 'border-collapse': 'separate'\n },\n 'mjx-mstack > table > tr': {\n 'line-height': 'initial'\n },\n 'mjx-mstack > table > tr > td': {\n // padding: '1.2rem',\n border: 'solid 0px blue',\n 'font-family': 'sans-serif',\n 'line-height': 'initial'\n },\n 'mjx-mstack > table > tr > td.inner': {\n 'font-family': 'inherit'\n },\n 'mjx-mstack > table > tr > .mjx-line': {\n padding: 0,\n 'border-top': 'solid 1px black'\n }\n};\n"],"file":"chtml.js"}
|
package/lib/mstack/mml.js
CHANGED
|
@@ -1,39 +1,43 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
+
function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }
|
|
4
|
+
|
|
3
5
|
Object.defineProperty(exports, "__esModule", {
|
|
4
6
|
value: true
|
|
5
7
|
});
|
|
6
|
-
exports.
|
|
8
|
+
exports.MmlNone = exports.MmlMstack = exports.MmlMsrow = exports.MmlMsline = void 0;
|
|
7
9
|
|
|
8
10
|
var _MmlNode = require("mathjax-full/js/core/MmlTree/MmlNode");
|
|
9
11
|
|
|
10
|
-
function _typeof(obj) { if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }
|
|
11
|
-
|
|
12
12
|
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
|
|
13
13
|
|
|
14
14
|
function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }
|
|
15
15
|
|
|
16
|
-
function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }
|
|
16
|
+
function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; }
|
|
17
17
|
|
|
18
|
-
function
|
|
18
|
+
function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, "prototype", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }
|
|
19
19
|
|
|
20
|
-
function
|
|
20
|
+
function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }
|
|
21
21
|
|
|
22
|
-
function
|
|
22
|
+
function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }
|
|
23
23
|
|
|
24
|
-
function
|
|
24
|
+
function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } else if (call !== void 0) { throw new TypeError("Derived constructors may only return object or undefined"); } return _assertThisInitialized(self); }
|
|
25
25
|
|
|
26
|
-
function
|
|
26
|
+
function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; }
|
|
27
27
|
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
function (
|
|
28
|
+
function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
|
|
29
|
+
|
|
30
|
+
function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }
|
|
31
|
+
|
|
32
|
+
var MmlNone = /*#__PURE__*/function (_AbstractMmlNode) {
|
|
31
33
|
_inherits(MmlNone, _AbstractMmlNode);
|
|
32
34
|
|
|
35
|
+
var _super = _createSuper(MmlNone);
|
|
36
|
+
|
|
33
37
|
function MmlNone() {
|
|
34
38
|
_classCallCheck(this, MmlNone);
|
|
35
39
|
|
|
36
|
-
return
|
|
40
|
+
return _super.apply(this, arguments);
|
|
37
41
|
}
|
|
38
42
|
|
|
39
43
|
_createClass(MmlNone, [{
|
|
@@ -48,15 +52,15 @@ function (_AbstractMmlNode) {
|
|
|
48
52
|
|
|
49
53
|
exports.MmlNone = MmlNone;
|
|
50
54
|
|
|
51
|
-
var MmlMstack =
|
|
52
|
-
/*#__PURE__*/
|
|
53
|
-
function (_AbstractMmlNode2) {
|
|
55
|
+
var MmlMstack = /*#__PURE__*/function (_AbstractMmlNode2) {
|
|
54
56
|
_inherits(MmlMstack, _AbstractMmlNode2);
|
|
55
57
|
|
|
58
|
+
var _super2 = _createSuper(MmlMstack);
|
|
59
|
+
|
|
56
60
|
function MmlMstack() {
|
|
57
61
|
_classCallCheck(this, MmlMstack);
|
|
58
62
|
|
|
59
|
-
return
|
|
63
|
+
return _super2.apply(this, arguments);
|
|
60
64
|
}
|
|
61
65
|
|
|
62
66
|
_createClass(MmlMstack, [{
|
|
@@ -71,15 +75,15 @@ function (_AbstractMmlNode2) {
|
|
|
71
75
|
|
|
72
76
|
exports.MmlMstack = MmlMstack;
|
|
73
77
|
|
|
74
|
-
var MmlMsrow =
|
|
75
|
-
/*#__PURE__*/
|
|
76
|
-
function (_AbstractMmlNode3) {
|
|
78
|
+
var MmlMsrow = /*#__PURE__*/function (_AbstractMmlNode3) {
|
|
77
79
|
_inherits(MmlMsrow, _AbstractMmlNode3);
|
|
78
80
|
|
|
81
|
+
var _super3 = _createSuper(MmlMsrow);
|
|
82
|
+
|
|
79
83
|
function MmlMsrow() {
|
|
80
84
|
_classCallCheck(this, MmlMsrow);
|
|
81
85
|
|
|
82
|
-
return
|
|
86
|
+
return _super3.apply(this, arguments);
|
|
83
87
|
}
|
|
84
88
|
|
|
85
89
|
_createClass(MmlMsrow, [{
|
|
@@ -94,15 +98,15 @@ function (_AbstractMmlNode3) {
|
|
|
94
98
|
|
|
95
99
|
exports.MmlMsrow = MmlMsrow;
|
|
96
100
|
|
|
97
|
-
var MmlMsline =
|
|
98
|
-
/*#__PURE__*/
|
|
99
|
-
function (_AbstractMmlNode4) {
|
|
101
|
+
var MmlMsline = /*#__PURE__*/function (_AbstractMmlNode4) {
|
|
100
102
|
_inherits(MmlMsline, _AbstractMmlNode4);
|
|
101
103
|
|
|
104
|
+
var _super4 = _createSuper(MmlMsline);
|
|
105
|
+
|
|
102
106
|
function MmlMsline() {
|
|
103
107
|
_classCallCheck(this, MmlMsline);
|
|
104
108
|
|
|
105
|
-
return
|
|
109
|
+
return _super4.apply(this, arguments);
|
|
106
110
|
}
|
|
107
111
|
|
|
108
112
|
_createClass(MmlMsline, [{
|
package/lib/mstack/mml.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/mstack/mml.js"],"names":["MmlNone","AbstractMmlNode","MmlMstack","MmlMsrow","MmlMsline"],"mappings":"
|
|
1
|
+
{"version":3,"sources":["../../src/mstack/mml.js"],"names":["MmlNone","AbstractMmlNode","MmlMstack","MmlMsrow","MmlMsline"],"mappings":";;;;;;;;;AAAA;;;;;;;;;;;;;;;;;;;;;;IAEaA,O;;;;;;;;;;;;;SACX,eAAW;AACT,aAAO,MAAP;AACD;;;;EAH0BC,wB;;;;IAMhBC,S;;;;;;;;;;;;;SACX,eAAW;AACT,aAAO,QAAP;AACD;;;;EAH4BD,wB;;;;IAMlBE,Q;;;;;;;;;;;;;SACX,eAAW;AACT,aAAO,OAAP;AACD;;;;EAH2BF,wB;;;;IAKjBG,S;;;;;;;;;;;;;SACX,eAAW;AACT,aAAO,QAAP;AACD;;;;EAH4BH,wB","sourcesContent":["import { AbstractMmlNode } from 'mathjax-full/js/core/MmlTree/MmlNode';\n\nexport class MmlNone extends AbstractMmlNode {\n get kind() {\n return 'none';\n }\n}\n\nexport class MmlMstack extends AbstractMmlNode {\n get kind() {\n return 'mstack';\n }\n}\n\nexport class MmlMsrow extends AbstractMmlNode {\n get kind() {\n return 'msrow';\n }\n}\nexport class MmlMsline extends AbstractMmlNode {\n get kind() {\n return 'msline';\n }\n}\n"],"file":"mml.js"}
|
package/lib/normalization.js
CHANGED
|
@@ -3,15 +3,19 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
-
exports.
|
|
6
|
+
exports.wrapMath = exports.unWrapMath = exports.BracketTypes = void 0;
|
|
7
7
|
|
|
8
8
|
var _PAIRS;
|
|
9
9
|
|
|
10
|
-
function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _nonIterableRest(); }
|
|
10
|
+
function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
|
|
11
11
|
|
|
12
|
-
function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance"); }
|
|
12
|
+
function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
|
|
13
13
|
|
|
14
|
-
function
|
|
14
|
+
function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
|
|
15
|
+
|
|
16
|
+
function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
|
|
17
|
+
|
|
18
|
+
function _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"]; if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; }
|
|
15
19
|
|
|
16
20
|
function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
|
|
17
21
|
|
package/lib/normalization.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/normalization.js"],"names":["BracketTypes","ROUND_BRACKETS","SQUARE_BRACKETS","DOLLAR","DOUBLE_DOLLAR","PAIRS","wrapMath","content","wrapType","console","warn","start","end","unWrapMath","displayStyleIndex","indexOf","replace","trim","startsWith","endsWith","unwrapped","substring","length"],"mappings":"
|
|
1
|
+
{"version":3,"sources":["../src/normalization.js"],"names":["BracketTypes","ROUND_BRACKETS","SQUARE_BRACKETS","DOLLAR","DOUBLE_DOLLAR","PAIRS","wrapMath","content","wrapType","console","warn","start","end","unWrapMath","displayStyleIndex","indexOf","replace","trim","startsWith","endsWith","unwrapped","substring","length"],"mappings":"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","sourcesContent":["export const BracketTypes = {};\n\nBracketTypes.ROUND_BRACKETS = 'round_brackets';\nBracketTypes.SQUARE_BRACKETS = 'square_brackets';\nBracketTypes.DOLLAR = 'dollar';\nBracketTypes.DOUBLE_DOLLAR = 'double_dollar';\n\nconst PAIRS = {\n [BracketTypes.ROUND_BRACKETS]: ['\\\\(', '\\\\)'],\n [BracketTypes.SQUARE_BRACKETS]: ['\\\\[', '\\\\]'],\n [BracketTypes.DOLLAR]: ['$', '$'],\n [BracketTypes.DOUBLE_DOLLAR]: ['$$', '$$']\n};\n\nexport const wrapMath = (content, wrapType) => {\n if (wrapType === BracketTypes.SQUARE_BRACKETS) {\n console.warn('\\\\[...\\\\] is not supported yet'); // eslint-disable-line\n wrapType = BracketTypes.ROUND_BRACKETS;\n }\n if (wrapType === BracketTypes.DOUBLE_DOLLAR) {\n console.warn('$$...$$ is not supported yet'); // eslint-disable-line\n wrapType = BracketTypes.DOLLAR;\n }\n\n const [start, end] = PAIRS[wrapType] || PAIRS[BracketTypes.ROUND_BRACKETS];\n return `${start}${content}${end}`;\n};\n\nexport const unWrapMath = content => {\n const displayStyleIndex = content.indexOf('\\\\displaystyle');\n if (displayStyleIndex !== -1) {\n console.warn('\\\\displaystyle is not supported - removing'); // eslint-disable-line\n content = content.replace('\\\\displaystyle', '').trim();\n }\n\n if (content.startsWith('$$') && content.endsWith('$$')) {\n console.warn('$$ syntax is not yet supported'); // eslint-disable-line\n return {\n unwrapped: content.substring(2, content.length - 2),\n wrapType: BracketTypes.DOLLAR\n };\n }\n if (content.startsWith('$') && content.endsWith('$')) {\n return {\n unwrapped: content.substring(1, content.length - 1),\n wrapType: BracketTypes.DOLLAR\n };\n }\n\n if (content.startsWith('\\\\[') && content.endsWith('\\\\]')) {\n console.warn('\\\\[..\\\\] syntax is not yet supported'); // eslint-disable-line\n return {\n unwrapped: content.substring(2, content.length - 2),\n wrapType: BracketTypes.ROUND_BRACKETS\n };\n }\n\n if (content.startsWith('\\\\(') && content.endsWith('\\\\)')) {\n return {\n unwrapped: content.substring(2, content.length - 2),\n wrapType: BracketTypes.ROUND_BRACKETS\n };\n }\n\n return {\n unwrapped: content,\n wrapType: BracketTypes.ROUND_BRACKETS\n };\n};\n"],"file":"normalization.js"}
|
package/lib/render-math.js
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
-
exports
|
|
6
|
+
exports.fixMathElements = exports.fixMathElement = exports["default"] = void 0;
|
|
7
7
|
|
|
8
8
|
var _mathjax = require("mathjax-full/js/mathjax");
|
|
9
9
|
|
|
@@ -17,6 +17,8 @@ var _html = require("mathjax-full/js/handlers/html");
|
|
|
17
17
|
|
|
18
18
|
var _browserAdaptor = require("mathjax-full/js/adaptors/browserAdaptor");
|
|
19
19
|
|
|
20
|
+
var _AllPackages = require("mathjax-full/js/input/tex/AllPackages");
|
|
21
|
+
|
|
20
22
|
var _package = _interopRequireDefault(require("../package.json"));
|
|
21
23
|
|
|
22
24
|
var _mstack = require("./mstack");
|
|
@@ -33,17 +35,21 @@ var _mspace = require("mathjax-full/js/output/chtml/Wrappers/mspace");
|
|
|
33
35
|
|
|
34
36
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
|
|
35
37
|
|
|
36
|
-
function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _nonIterableSpread(); }
|
|
38
|
+
function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }
|
|
39
|
+
|
|
40
|
+
function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
|
|
41
|
+
|
|
42
|
+
function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
|
|
37
43
|
|
|
38
|
-
function
|
|
44
|
+
function _iterableToArray(iter) { if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter); }
|
|
39
45
|
|
|
40
|
-
function
|
|
46
|
+
function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }
|
|
41
47
|
|
|
42
|
-
function
|
|
48
|
+
function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
|
|
43
49
|
|
|
44
|
-
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object);
|
|
50
|
+
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
|
45
51
|
|
|
46
|
-
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]
|
|
52
|
+
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
|
|
47
53
|
|
|
48
54
|
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
|
49
55
|
|
|
@@ -123,11 +129,36 @@ var bootstrap = function bootstrap(opts) {
|
|
|
123
129
|
console.warn('[math-rendering] using $ is not advisable, please use $$..$$ or \\(...\\)');
|
|
124
130
|
}
|
|
125
131
|
|
|
132
|
+
var packages = _AllPackages.AllPackages.filter(function (name) {
|
|
133
|
+
return name !== 'bussproofs';
|
|
134
|
+
}); // Bussproofs needs an output jax
|
|
135
|
+
// The autoload extension predefines all the macros from the extensions that haven't been loaded already
|
|
136
|
+
// so that they automatically load the needed extension when they are first used
|
|
137
|
+
|
|
138
|
+
|
|
139
|
+
packages.push('autoload');
|
|
140
|
+
var macros = {
|
|
141
|
+
parallelogram: "\\lower.2em{\\Huge\\unicode{x25B1}}",
|
|
142
|
+
overarc: '\\overparen',
|
|
143
|
+
napprox: '\\not\\approx',
|
|
144
|
+
longdiv: '\\enclose{longdiv}'
|
|
145
|
+
};
|
|
126
146
|
var texConfig = opts.useSingleDollar ? {
|
|
147
|
+
loader: {
|
|
148
|
+
require: require
|
|
149
|
+
},
|
|
150
|
+
packages: packages,
|
|
151
|
+
macros: macros,
|
|
127
152
|
inlineMath: [['$', '$'], ['\\(', '\\)']],
|
|
153
|
+
displayMath: [['$$', '$$'], ['\\[', '\\]']],
|
|
128
154
|
processEscapes: true
|
|
129
|
-
} : {
|
|
155
|
+
} : {
|
|
156
|
+
packages: packages,
|
|
157
|
+
macros: macros
|
|
158
|
+
};
|
|
130
159
|
var mmlConfig = {
|
|
160
|
+
parseAs: 'html',
|
|
161
|
+
forceReparse: false,
|
|
131
162
|
parseError: function parseError(node) {
|
|
132
163
|
// function to process parsing errors
|
|
133
164
|
console.log('error:', node);
|
|
@@ -137,10 +168,11 @@ var bootstrap = function bootstrap(opts) {
|
|
|
137
168
|
var fontURL = "https://unpkg.com/mathjax-full@".concat(_mathjax.mathjax.version, "/ts/output/chtml/fonts/tex-woff-v2");
|
|
138
169
|
var htmlConfig = {
|
|
139
170
|
fontURL: fontURL,
|
|
140
|
-
wrapperFactory: new _WrapperFactory.CHTMLWrapperFactory(_objectSpread({}, _WrapperFactory.CHTMLWrapperFactory.defaultNodes,
|
|
171
|
+
wrapperFactory: new _WrapperFactory.CHTMLWrapperFactory(_objectSpread(_objectSpread({}, _WrapperFactory.CHTMLWrapperFactory.defaultNodes), _mstack.chtmlNodes))
|
|
141
172
|
};
|
|
142
173
|
var mml = new _mathml.MathML(mmlConfig);
|
|
143
|
-
|
|
174
|
+
console.log([new _tex.TeX(texConfig), mml]);
|
|
175
|
+
var customMmlFactory = new _MmlFactory.MmlFactory(_objectSpread(_objectSpread({}, _MmlFactory.MmlFactory.defaultNodes), _mstack.mmlNodes));
|
|
144
176
|
|
|
145
177
|
var html = _mathjax.mathjax.document(document, {
|
|
146
178
|
compileError: function compileError(mj, math, err) {
|
|
@@ -201,16 +233,17 @@ var renderMath = function renderMath(el, renderOpts) {
|
|
|
201
233
|
* In mathjax src code \newline latex gets parsed to <mjx-mspace></mjx-mspace>,
|
|
202
234
|
* but has the default style
|
|
203
235
|
* 'mjx-mspace': {
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
236
|
+
"display": 'in-line',
|
|
237
|
+
"text-align": 'left'
|
|
238
|
+
} which prevents it from showing as a newline value
|
|
239
|
+
*/
|
|
208
240
|
|
|
209
241
|
|
|
210
242
|
_mspace.CHTMLmspace.styles = {
|
|
211
243
|
'mjx-mspace': {
|
|
212
244
|
display: 'block',
|
|
213
|
-
'text-align': 'center'
|
|
245
|
+
'text-align': 'center',
|
|
246
|
+
height: '5px'
|
|
214
247
|
}
|
|
215
248
|
};
|
|
216
249
|
var _default = renderMath;
|
package/lib/render-math.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/render-math.js"],"names":["window","log","NEWLINE_BLOCK_REGEX","NEWLINE_LATEX","getGlobal","key","pkg","name","version","split","defaultOpts","opts","fixMathElement","element","property","textContent","unwrapped","replace","fixMathElements","mathElements","document","querySelectorAll","forEach","item","bootstrap","Typeset","useSingleDollar","console","warn","texConfig","inlineMath","processEscapes","mmlConfig","parseError","node","error","adaptor","fontURL","mathjax","htmlConfig","wrapperFactory","CHTMLWrapperFactory","defaultNodes","chtmlNodes","mml","MathML","customMmlFactory","MmlFactory","mmlNodes","html","compileError","mj","math","err","typesetError","doc","InputJax","TeX","OutputJax","CHTML","setMmlFactory","elements","findMath","length","compile","getMetrics","typeset","updateDocument","clear","renderMath","el","renderOpts","instance","Element","arr","Array","from","CHTMLmspace","styles","display"],"mappings":"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","sourcesContent":["import { mathjax } from 'mathjax-full/js/mathjax';\nimport { MathML } from 'mathjax-full/js/input/mathml';\nimport { TeX } from 'mathjax-full/js/input/tex';\n\nimport { CHTML } from 'mathjax-full/js/output/chtml';\nimport { RegisterHTMLHandler } from 'mathjax-full/js/handlers/html';\nimport { browserAdaptor } from 'mathjax-full/js/adaptors/browserAdaptor';\n\nif (typeof window !== 'undefined') {\n RegisterHTMLHandler(browserAdaptor());\n}\n\nimport pkg from '../package.json';\nimport { mmlNodes, chtmlNodes } from './mstack';\nimport debug from 'debug';\nimport { wrapMath, unWrapMath } from './normalization';\nimport { MmlFactory } from 'mathjax-full/js/core/MmlTree/MmlFactory';\nimport { CHTMLWrapperFactory } from 'mathjax-full/js/output/chtml/WrapperFactory';\nimport { CHTMLmspace } from 'mathjax-full/js/output/chtml/Wrappers/mspace';\n\nconst log = debug('pie-lib:math-rendering');\n\nconst NEWLINE_BLOCK_REGEX = /\\\\embed\\{newLine\\}\\[\\]/g;\nconst NEWLINE_LATEX = '\\\\newline ';\n\nconst getGlobal = () => {\n const key = `${pkg.name}@${pkg.version.split('.')[0]}`;\n\n if (typeof window !== 'undefined') {\n if (!window[key]) {\n window[key] = {};\n }\n return window[key];\n } else {\n return {};\n }\n};\n\n/** Add temporary support for a global singleDollar override\n * <code>\n * // This will enable single dollar rendering\n * window.pie = window.pie || {};\n * window.pie.mathRendering = {useSingleDollar: true };\n * </code>\n */\nconst defaultOpts = () => getGlobal().opts || {};\n\nexport const fixMathElement = element => {\n let property = 'innerText';\n\n if (element.textContent) {\n property = 'textContent';\n }\n\n if (element[property]) {\n element[property] = wrapMath(unWrapMath(element[property]).unwrapped);\n // because mathquill doesn't understand line breaks, sometimes we end up with custom elements on prompts/rationale/etc.\n // we need to replace the custom embedded elements with valid latex that Mathjax can understand\n element[property] = element[property].replace(NEWLINE_BLOCK_REGEX, NEWLINE_LATEX);\n }\n};\n\nexport const fixMathElements = () => {\n const mathElements = document.querySelectorAll('[data-latex]');\n\n mathElements.forEach(item => fixMathElement(item));\n};\n\nconst bootstrap = opts => {\n if (typeof window === 'undefined') {\n return { Typeset: () => ({}) };\n }\n\n opts = opts || defaultOpts();\n\n if (opts.useSingleDollar) {\n // eslint-disable-next-line\n console.warn('[math-rendering] using $ is not advisable, please use $$..$$ or \\\\(...\\\\)');\n }\n\n const texConfig = opts.useSingleDollar\n ? { inlineMath: [['$', '$'], ['\\\\(', '\\\\)']], processEscapes: true }\n : {};\n\n const mmlConfig = {\n parseError: function(node) {\n // function to process parsing errors\n console.log('error:', node);\n this.error(this.adaptor.textContent(node).replace(/\\n.*/g, ''));\n }\n };\n\n const fontURL = `https://unpkg.com/mathjax-full@${mathjax.version}/ts/output/chtml/fonts/tex-woff-v2`;\n const htmlConfig = {\n fontURL,\n\n wrapperFactory: new CHTMLWrapperFactory({\n ...CHTMLWrapperFactory.defaultNodes,\n ...chtmlNodes\n })\n };\n\n const mml = new MathML(mmlConfig);\n\n const customMmlFactory = new MmlFactory({\n ...MmlFactory.defaultNodes,\n ...mmlNodes\n });\n\n const html = mathjax.document(document, {\n compileError: (mj, math, err) => {\n console.log('bad math?:', math);\n console.error(err);\n },\n typesetError: function(doc, math, err) {\n console.log('typeset error');\n console.error(err);\n doc.typesetError(math, err);\n },\n\n InputJax: [new TeX(texConfig), mml],\n OutputJax: new CHTML(htmlConfig)\n });\n\n // Note: we must set this *after* mathjax.document (no idea why)\n mml.setMmlFactory(customMmlFactory);\n\n return {\n version: mathjax.version,\n html: html,\n\n Typeset: function(...elements) {\n this.html\n .findMath(elements.length ? { elements } : {})\n .compile()\n .getMetrics()\n .typeset()\n .updateDocument()\n .clear();\n }\n };\n};\n\nconst renderMath = (el, renderOpts) => {\n //TODO: remove this - has nothing to do with math-rendering (it's from editable-html)\n fixMathElements();\n\n if (!getGlobal().instance) {\n getGlobal().instance = bootstrap(renderOpts);\n }\n\n if (!el) {\n log('el is undefined');\n return;\n }\n\n if (el instanceof Element) {\n getGlobal().instance.Typeset(el);\n } else if (el.length) {\n const arr = Array.from(el);\n getGlobal().instance.Typeset(...arr);\n }\n};\n\n/**\n * This style is added to overried default styling of mjx-mspace Mathjax tag\n * In mathjax src code \\newline latex gets parsed to <mjx-mspace></mjx-mspace>,\n * but has the default style\n * 'mjx-mspace': {\n \"display\": 'in-line',\n \"text-align\": 'left'\n } which prevents it from showing as a newline value\n */\nCHTMLmspace.styles = {\n 'mjx-mspace': {\n display: 'block',\n 'text-align': 'center'\n }\n};\n\nexport default renderMath;\n"],"file":"render-math.js"}
|
|
1
|
+
{"version":3,"sources":["../src/render-math.js"],"names":["window","log","NEWLINE_BLOCK_REGEX","NEWLINE_LATEX","getGlobal","key","pkg","name","version","split","defaultOpts","opts","fixMathElement","element","property","textContent","unwrapped","replace","fixMathElements","mathElements","document","querySelectorAll","forEach","item","bootstrap","Typeset","useSingleDollar","console","warn","packages","AllPackages","filter","push","macros","parallelogram","overarc","napprox","longdiv","texConfig","loader","require","inlineMath","displayMath","processEscapes","mmlConfig","parseAs","forceReparse","parseError","node","error","adaptor","fontURL","mathjax","htmlConfig","wrapperFactory","CHTMLWrapperFactory","defaultNodes","chtmlNodes","mml","MathML","TeX","customMmlFactory","MmlFactory","mmlNodes","html","compileError","mj","math","err","typesetError","doc","InputJax","OutputJax","CHTML","setMmlFactory","elements","findMath","length","compile","getMetrics","typeset","updateDocument","clear","renderMath","el","renderOpts","instance","Element","arr","Array","from","CHTMLmspace","styles","display","height"],"mappings":"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","sourcesContent":["import { mathjax } from 'mathjax-full/js/mathjax';\nimport { MathML } from 'mathjax-full/js/input/mathml';\nimport { TeX } from 'mathjax-full/js/input/tex';\n\nimport { CHTML } from 'mathjax-full/js/output/chtml';\nimport { RegisterHTMLHandler } from 'mathjax-full/js/handlers/html';\nimport { browserAdaptor } from 'mathjax-full/js/adaptors/browserAdaptor';\nimport { AllPackages } from 'mathjax-full/js/input/tex/AllPackages';\n\nif (typeof window !== 'undefined') {\n RegisterHTMLHandler(browserAdaptor());\n}\n\nimport pkg from '../package.json';\nimport { mmlNodes, chtmlNodes } from './mstack';\nimport debug from 'debug';\nimport { wrapMath, unWrapMath } from './normalization';\nimport { MmlFactory } from 'mathjax-full/js/core/MmlTree/MmlFactory';\nimport { CHTMLWrapperFactory } from 'mathjax-full/js/output/chtml/WrapperFactory';\nimport { CHTMLmspace } from 'mathjax-full/js/output/chtml/Wrappers/mspace';\n\nconst log = debug('pie-lib:math-rendering');\n\nconst NEWLINE_BLOCK_REGEX = /\\\\embed\\{newLine\\}\\[\\]/g;\nconst NEWLINE_LATEX = '\\\\newline ';\n\nconst getGlobal = () => {\n const key = `${pkg.name}@${pkg.version.split('.')[0]}`;\n\n if (typeof window !== 'undefined') {\n if (!window[key]) {\n window[key] = {};\n }\n return window[key];\n } else {\n return {};\n }\n};\n\n/** Add temporary support for a global singleDollar override\n * <code>\n * // This will enable single dollar rendering\n * window.pie = window.pie || {};\n * window.pie.mathRendering = {useSingleDollar: true };\n * </code>\n */\nconst defaultOpts = () => getGlobal().opts || {};\n\nexport const fixMathElement = element => {\n let property = 'innerText';\n\n if (element.textContent) {\n property = 'textContent';\n }\n\n if (element[property]) {\n element[property] = wrapMath(unWrapMath(element[property]).unwrapped);\n // because mathquill doesn't understand line breaks, sometimes we end up with custom elements on prompts/rationale/etc.\n // we need to replace the custom embedded elements with valid latex that Mathjax can understand\n element[property] = element[property].replace(NEWLINE_BLOCK_REGEX, NEWLINE_LATEX);\n }\n};\n\nexport const fixMathElements = () => {\n const mathElements = document.querySelectorAll('[data-latex]');\n\n mathElements.forEach(item => fixMathElement(item));\n};\n\nconst bootstrap = opts => {\n if (typeof window === 'undefined') {\n return { Typeset: () => ({}) };\n }\n\n opts = opts || defaultOpts();\n\n if (opts.useSingleDollar) {\n // eslint-disable-next-line\n console.warn('[math-rendering] using $ is not advisable, please use $$..$$ or \\\\(...\\\\)');\n }\n\n const packages = AllPackages.filter(name => name !== 'bussproofs'); // Bussproofs needs an output jax\n\n // The autoload extension predefines all the macros from the extensions that haven't been loaded already\n // so that they automatically load the needed extension when they are first used\n packages.push('autoload');\n\n const macros = {\n parallelogram: '\\\\lower.2em{\\\\Huge\\\\unicode{x25B1}}',\n overarc: '\\\\overparen',\n napprox: '\\\\not\\\\approx',\n longdiv: '\\\\enclose{longdiv}'\n };\n\n const texConfig = opts.useSingleDollar\n ? {\n loader: {\n require: require\n },\n packages,\n macros,\n inlineMath: [\n ['$', '$'],\n ['\\\\(', '\\\\)']\n ],\n displayMath: [\n ['$$', '$$'],\n ['\\\\[', '\\\\]']\n ],\n processEscapes: true\n }\n : {\n packages,\n macros\n };\n\n const mmlConfig = {\n parseAs: 'html',\n forceReparse: false,\n parseError: function(node) {\n // function to process parsing errors\n console.log('error:', node);\n this.error(this.adaptor.textContent(node).replace(/\\n.*/g, ''));\n }\n };\n\n const fontURL = `https://unpkg.com/mathjax-full@${mathjax.version}/ts/output/chtml/fonts/tex-woff-v2`;\n const htmlConfig = {\n fontURL,\n\n wrapperFactory: new CHTMLWrapperFactory({\n ...CHTMLWrapperFactory.defaultNodes,\n ...chtmlNodes\n })\n };\n\n const mml = new MathML(mmlConfig);\n console.log([new TeX(texConfig), mml]);\n\n const customMmlFactory = new MmlFactory({\n ...MmlFactory.defaultNodes,\n ...mmlNodes\n });\n\n const html = mathjax.document(document, {\n compileError: (mj, math, err) => {\n console.log('bad math?:', math);\n console.error(err);\n },\n typesetError: function(doc, math, err) {\n console.log('typeset error');\n console.error(err);\n doc.typesetError(math, err);\n },\n\n InputJax: [new TeX(texConfig), mml],\n OutputJax: new CHTML(htmlConfig)\n });\n\n // Note: we must set this *after* mathjax.document (no idea why)\n mml.setMmlFactory(customMmlFactory);\n\n return {\n version: mathjax.version,\n html: html,\n\n Typeset: function(...elements) {\n this.html\n .findMath(elements.length ? { elements } : {})\n .compile()\n .getMetrics()\n .typeset()\n .updateDocument()\n .clear();\n }\n };\n};\n\nconst renderMath = (el, renderOpts) => {\n //TODO: remove this - has nothing to do with math-rendering (it's from editable-html)\n fixMathElements();\n\n if (!getGlobal().instance) {\n getGlobal().instance = bootstrap(renderOpts);\n }\n\n if (!el) {\n log('el is undefined');\n return;\n }\n\n if (el instanceof Element) {\n getGlobal().instance.Typeset(el);\n } else if (el.length) {\n const arr = Array.from(el);\n getGlobal().instance.Typeset(...arr);\n }\n};\n\n/**\n * This style is added to overried default styling of mjx-mspace Mathjax tag\n * In mathjax src code \\newline latex gets parsed to <mjx-mspace></mjx-mspace>,\n * but has the default style\n * 'mjx-mspace': {\n \"display\": 'in-line',\n \"text-align\": 'left'\n} which prevents it from showing as a newline value\n*/\nCHTMLmspace.styles = {\n 'mjx-mspace': {\n display: 'block',\n 'text-align': 'center',\n height: '5px'\n }\n};\n\nexport default renderMath;\n"],"file":"render-math.js"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@pie-lib/math-rendering",
|
|
3
|
-
"version": "2.3.
|
|
3
|
+
"version": "2.3.10-next.179+42c4d7f5",
|
|
4
4
|
"description": "math rendering utilities",
|
|
5
5
|
"publishConfig": {
|
|
6
6
|
"access": "public"
|
|
@@ -12,8 +12,8 @@
|
|
|
12
12
|
"dependencies": {
|
|
13
13
|
"debug": "^4.1.1",
|
|
14
14
|
"lodash": "^4.17.11",
|
|
15
|
-
"mathjax-full": "^3.
|
|
15
|
+
"mathjax-full": "^3.2.0"
|
|
16
16
|
},
|
|
17
|
-
"gitHead": "
|
|
17
|
+
"gitHead": "42c4d7f55f7ed4f54a5d66e1adbbe66c31054eea",
|
|
18
18
|
"scripts": {}
|
|
19
19
|
}
|
package/src/render-math.js
CHANGED
|
@@ -5,6 +5,7 @@ import { TeX } from 'mathjax-full/js/input/tex';
|
|
|
5
5
|
import { CHTML } from 'mathjax-full/js/output/chtml';
|
|
6
6
|
import { RegisterHTMLHandler } from 'mathjax-full/js/handlers/html';
|
|
7
7
|
import { browserAdaptor } from 'mathjax-full/js/adaptors/browserAdaptor';
|
|
8
|
+
import { AllPackages } from 'mathjax-full/js/input/tex/AllPackages';
|
|
8
9
|
|
|
9
10
|
if (typeof window !== 'undefined') {
|
|
10
11
|
RegisterHTMLHandler(browserAdaptor());
|
|
@@ -78,11 +79,44 @@ const bootstrap = opts => {
|
|
|
78
79
|
console.warn('[math-rendering] using $ is not advisable, please use $$..$$ or \\(...\\)');
|
|
79
80
|
}
|
|
80
81
|
|
|
82
|
+
const packages = AllPackages.filter(name => name !== 'bussproofs'); // Bussproofs needs an output jax
|
|
83
|
+
|
|
84
|
+
// The autoload extension predefines all the macros from the extensions that haven't been loaded already
|
|
85
|
+
// so that they automatically load the needed extension when they are first used
|
|
86
|
+
packages.push('autoload');
|
|
87
|
+
|
|
88
|
+
const macros = {
|
|
89
|
+
parallelogram: '\\lower.2em{\\Huge\\unicode{x25B1}}',
|
|
90
|
+
overarc: '\\overparen',
|
|
91
|
+
napprox: '\\not\\approx',
|
|
92
|
+
longdiv: '\\enclose{longdiv}'
|
|
93
|
+
};
|
|
94
|
+
|
|
81
95
|
const texConfig = opts.useSingleDollar
|
|
82
|
-
? {
|
|
83
|
-
|
|
96
|
+
? {
|
|
97
|
+
loader: {
|
|
98
|
+
require: require
|
|
99
|
+
},
|
|
100
|
+
packages,
|
|
101
|
+
macros,
|
|
102
|
+
inlineMath: [
|
|
103
|
+
['$', '$'],
|
|
104
|
+
['\\(', '\\)']
|
|
105
|
+
],
|
|
106
|
+
displayMath: [
|
|
107
|
+
['$$', '$$'],
|
|
108
|
+
['\\[', '\\]']
|
|
109
|
+
],
|
|
110
|
+
processEscapes: true
|
|
111
|
+
}
|
|
112
|
+
: {
|
|
113
|
+
packages,
|
|
114
|
+
macros
|
|
115
|
+
};
|
|
84
116
|
|
|
85
117
|
const mmlConfig = {
|
|
118
|
+
parseAs: 'html',
|
|
119
|
+
forceReparse: false,
|
|
86
120
|
parseError: function(node) {
|
|
87
121
|
// function to process parsing errors
|
|
88
122
|
console.log('error:', node);
|
|
@@ -101,6 +135,7 @@ const bootstrap = opts => {
|
|
|
101
135
|
};
|
|
102
136
|
|
|
103
137
|
const mml = new MathML(mmlConfig);
|
|
138
|
+
console.log([new TeX(texConfig), mml]);
|
|
104
139
|
|
|
105
140
|
const customMmlFactory = new MmlFactory({
|
|
106
141
|
...MmlFactory.defaultNodes,
|
|
@@ -167,14 +202,15 @@ const renderMath = (el, renderOpts) => {
|
|
|
167
202
|
* In mathjax src code \newline latex gets parsed to <mjx-mspace></mjx-mspace>,
|
|
168
203
|
* but has the default style
|
|
169
204
|
* 'mjx-mspace': {
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
205
|
+
"display": 'in-line',
|
|
206
|
+
"text-align": 'left'
|
|
207
|
+
} which prevents it from showing as a newline value
|
|
208
|
+
*/
|
|
174
209
|
CHTMLmspace.styles = {
|
|
175
210
|
'mjx-mspace': {
|
|
176
211
|
display: 'block',
|
|
177
|
-
'text-align': 'center'
|
|
212
|
+
'text-align': 'center',
|
|
213
|
+
height: '5px'
|
|
178
214
|
}
|
|
179
215
|
};
|
|
180
216
|
|