@jupyterlab/mathjax-extension 4.0.6 → 4.0.7

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/lib/index.js CHANGED
@@ -4,6 +4,7 @@
4
4
  * @packageDocumentation
5
5
  * @module mathjax-extension
6
6
  */
7
+ import { PromiseDelegate } from '@lumino/coreutils';
7
8
  import { ILatexTypesetter } from '@jupyterlab/rendermime';
8
9
  var CommandIDs;
9
10
  (function (CommandIDs) {
@@ -24,48 +25,10 @@ export class MathJaxTypesetter {
24
25
  this._initialized = false;
25
26
  }
26
27
  async _ensureInitialized() {
27
- if (this._initialized) {
28
- return;
29
- }
30
- await import('mathjax-full/js/input/tex/require/RequireConfiguration');
31
- const { mathjax } = await import('mathjax-full/js/mathjax');
32
- const { CHTML } = await import('mathjax-full/js/output/chtml');
33
- const { TeX } = await import('mathjax-full/js/input/tex');
34
- const { TeXFont } = await import('mathjax-full/js/output/chtml/fonts/tex');
35
- const { AllPackages } = await import('mathjax-full/js/input/tex/AllPackages');
36
- const { SafeHandler } = await import('mathjax-full/js/ui/safe/SafeHandler');
37
- const { HTMLHandler } = await import('mathjax-full/js/handlers/html/HTMLHandler');
38
- const { browserAdaptor } = await import('mathjax-full/js/adaptors/browserAdaptor');
39
- const { AssistiveMmlHandler } = await import('mathjax-full/js/a11y/assistive-mml');
40
- mathjax.handlers.register(AssistiveMmlHandler(SafeHandler(new HTMLHandler(browserAdaptor()))));
41
- class EmptyFont extends TeXFont {
42
- constructor() {
43
- super(...arguments);
44
- this.defaultFonts = {};
45
- }
28
+ if (!this._initialized) {
29
+ this._mathDocument = await Private.ensureMathDocument();
30
+ this._initialized = true;
46
31
  }
47
- const chtml = new CHTML({
48
- // Override dynamically generated fonts in favor of our font css
49
- font: new EmptyFont()
50
- });
51
- const tex = new TeX({
52
- packages: AllPackages.concat('require'),
53
- inlineMath: [
54
- ['$', '$'],
55
- ['\\(', '\\)']
56
- ],
57
- displayMath: [
58
- ['$$', '$$'],
59
- ['\\[', '\\]']
60
- ],
61
- processEscapes: true,
62
- processEnvironments: true
63
- });
64
- this._mathDocument = mathjax.document(window.document, {
65
- InputJax: tex,
66
- OutputJax: chtml
67
- });
68
- this._initialized = true;
69
32
  }
70
33
  /**
71
34
  * Get an instance of the MathDocument object.
@@ -121,4 +84,56 @@ const mathJaxPlugin = {
121
84
  autoStart: true
122
85
  };
123
86
  export default mathJaxPlugin;
87
+ /**
88
+ * A namespace for module-private functionality.
89
+ */
90
+ var Private;
91
+ (function (Private) {
92
+ let _loading = null;
93
+ async function ensureMathDocument() {
94
+ if (!_loading) {
95
+ _loading = new PromiseDelegate();
96
+ void import('mathjax-full/js/input/tex/require/RequireConfiguration');
97
+ const [{ mathjax }, { CHTML }, { TeX }, { TeXFont }, { AllPackages }, { SafeHandler }, { HTMLHandler }, { browserAdaptor }, { AssistiveMmlHandler }] = await Promise.all([
98
+ import('mathjax-full/js/mathjax'),
99
+ import('mathjax-full/js/output/chtml'),
100
+ import('mathjax-full/js/input/tex'),
101
+ import('mathjax-full/js/output/chtml/fonts/tex'),
102
+ import('mathjax-full/js/input/tex/AllPackages'),
103
+ import('mathjax-full/js/ui/safe/SafeHandler'),
104
+ import('mathjax-full/js/handlers/html/HTMLHandler'),
105
+ import('mathjax-full/js/adaptors/browserAdaptor'),
106
+ import('mathjax-full/js/a11y/assistive-mml')
107
+ ]);
108
+ mathjax.handlers.register(AssistiveMmlHandler(SafeHandler(new HTMLHandler(browserAdaptor()))));
109
+ class EmptyFont extends TeXFont {
110
+ }
111
+ EmptyFont.defaultFonts = {};
112
+ const chtml = new CHTML({
113
+ // Override dynamically generated fonts in favor of our font css
114
+ font: new EmptyFont()
115
+ });
116
+ const tex = new TeX({
117
+ packages: AllPackages.concat('require'),
118
+ inlineMath: [
119
+ ['$', '$'],
120
+ ['\\(', '\\)']
121
+ ],
122
+ displayMath: [
123
+ ['$$', '$$'],
124
+ ['\\[', '\\]']
125
+ ],
126
+ processEscapes: true,
127
+ processEnvironments: true
128
+ });
129
+ const mathDocument = mathjax.document(window.document, {
130
+ InputJax: tex,
131
+ OutputJax: chtml
132
+ });
133
+ _loading.resolve(mathDocument);
134
+ }
135
+ return _loading.promise;
136
+ }
137
+ Private.ensureMathDocument = ensureMathDocument;
138
+ })(Private || (Private = {}));
124
139
  //# sourceMappingURL=index.js.map
package/lib/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@jupyterlab/mathjax-extension",
3
- "version": "4.0.6",
3
+ "version": "4.0.7",
4
4
  "description": "A JupyterLab extension providing MathJax Typesetting",
5
5
  "keywords": [
6
6
  "jupyter",
@@ -43,8 +43,9 @@
43
43
  "watch": "tsc -b --watch"
44
44
  },
45
45
  "dependencies": {
46
- "@jupyterlab/application": "^4.0.6",
47
- "@jupyterlab/rendermime": "^4.0.6",
46
+ "@jupyterlab/application": "^4.0.7",
47
+ "@jupyterlab/rendermime": "^4.0.7",
48
+ "@lumino/coreutils": "^2.1.2",
48
49
  "mathjax-full": "^3.2.2"
49
50
  },
50
51
  "devDependencies": {
package/src/index.ts CHANGED
@@ -5,6 +5,8 @@
5
5
  * @module mathjax-extension
6
6
  */
7
7
 
8
+ import { PromiseDelegate } from '@lumino/coreutils';
9
+
8
10
  import {
9
11
  JupyterFrontEnd,
10
12
  JupyterFrontEndPlugin
@@ -36,61 +38,10 @@ namespace CommandArgs {
36
38
  */
37
39
  export class MathJaxTypesetter implements ILatexTypesetter {
38
40
  protected async _ensureInitialized() {
39
- if (this._initialized) {
40
- return;
41
+ if (!this._initialized) {
42
+ this._mathDocument = await Private.ensureMathDocument();
43
+ this._initialized = true;
41
44
  }
42
-
43
- await import('mathjax-full/js/input/tex/require/RequireConfiguration');
44
- const { mathjax } = await import('mathjax-full/js/mathjax');
45
- const { CHTML } = await import('mathjax-full/js/output/chtml');
46
- const { TeX } = await import('mathjax-full/js/input/tex');
47
- const { TeXFont } = await import('mathjax-full/js/output/chtml/fonts/tex');
48
- const { AllPackages } = await import(
49
- 'mathjax-full/js/input/tex/AllPackages'
50
- );
51
- const { SafeHandler } = await import('mathjax-full/js/ui/safe/SafeHandler');
52
- const { HTMLHandler } = await import(
53
- 'mathjax-full/js/handlers/html/HTMLHandler'
54
- );
55
- const { browserAdaptor } = await import(
56
- 'mathjax-full/js/adaptors/browserAdaptor'
57
- );
58
- const { AssistiveMmlHandler } = await import(
59
- 'mathjax-full/js/a11y/assistive-mml'
60
- );
61
-
62
- mathjax.handlers.register(
63
- AssistiveMmlHandler(SafeHandler(new HTMLHandler(browserAdaptor())))
64
- );
65
-
66
- class EmptyFont extends TeXFont {
67
- defaultFonts = {};
68
- }
69
-
70
- const chtml = new CHTML({
71
- // Override dynamically generated fonts in favor of our font css
72
- font: new EmptyFont()
73
- });
74
-
75
- const tex = new TeX({
76
- packages: AllPackages.concat('require'),
77
- inlineMath: [
78
- ['$', '$'],
79
- ['\\(', '\\)']
80
- ],
81
- displayMath: [
82
- ['$$', '$$'],
83
- ['\\[', '\\]']
84
- ],
85
- processEscapes: true,
86
- processEnvironments: true
87
- });
88
-
89
- this._mathDocument = mathjax.document(window.document, {
90
- InputJax: tex,
91
- OutputJax: chtml
92
- });
93
- this._initialized = true;
94
45
  }
95
46
 
96
47
  /**
@@ -157,3 +108,78 @@ const mathJaxPlugin: JupyterFrontEndPlugin<ILatexTypesetter> = {
157
108
  };
158
109
 
159
110
  export default mathJaxPlugin;
111
+
112
+ /**
113
+ * A namespace for module-private functionality.
114
+ */
115
+ namespace Private {
116
+ let _loading: PromiseDelegate<MathDocument<any, any, any>> | null = null;
117
+
118
+ export async function ensureMathDocument(): Promise<
119
+ MathDocument<any, any, any>
120
+ > {
121
+ if (!_loading) {
122
+ _loading = new PromiseDelegate();
123
+
124
+ void import('mathjax-full/js/input/tex/require/RequireConfiguration');
125
+
126
+ const [
127
+ { mathjax },
128
+ { CHTML },
129
+ { TeX },
130
+ { TeXFont },
131
+ { AllPackages },
132
+ { SafeHandler },
133
+ { HTMLHandler },
134
+ { browserAdaptor },
135
+ { AssistiveMmlHandler }
136
+ ] = await Promise.all([
137
+ import('mathjax-full/js/mathjax'),
138
+ import('mathjax-full/js/output/chtml'),
139
+ import('mathjax-full/js/input/tex'),
140
+ import('mathjax-full/js/output/chtml/fonts/tex'),
141
+ import('mathjax-full/js/input/tex/AllPackages'),
142
+ import('mathjax-full/js/ui/safe/SafeHandler'),
143
+ import('mathjax-full/js/handlers/html/HTMLHandler'),
144
+ import('mathjax-full/js/adaptors/browserAdaptor'),
145
+ import('mathjax-full/js/a11y/assistive-mml')
146
+ ]);
147
+
148
+ mathjax.handlers.register(
149
+ AssistiveMmlHandler(SafeHandler(new HTMLHandler(browserAdaptor())))
150
+ );
151
+
152
+ class EmptyFont extends TeXFont {
153
+ protected static defaultFonts = {} as any;
154
+ }
155
+
156
+ const chtml = new CHTML({
157
+ // Override dynamically generated fonts in favor of our font css
158
+ font: new EmptyFont()
159
+ });
160
+
161
+ const tex = new TeX({
162
+ packages: AllPackages.concat('require'),
163
+ inlineMath: [
164
+ ['$', '$'],
165
+ ['\\(', '\\)']
166
+ ],
167
+ displayMath: [
168
+ ['$$', '$$'],
169
+ ['\\[', '\\]']
170
+ ],
171
+ processEscapes: true,
172
+ processEnvironments: true
173
+ });
174
+
175
+ const mathDocument = mathjax.document(window.document, {
176
+ InputJax: tex,
177
+ OutputJax: chtml
178
+ });
179
+
180
+ _loading.resolve(mathDocument);
181
+ }
182
+
183
+ return _loading.promise;
184
+ }
185
+ }
package/style/fonts.css CHANGED
@@ -4,102 +4,119 @@
4
4
  */
5
5
 
6
6
  @font-face /* 0 */ {
7
+ font-display: swap;
7
8
  font-family: MJXZERO;
8
9
  src: url('~mathjax-full/es5/output/chtml/fonts/woff-v2/MathJax_Zero.woff')
9
10
  format('woff');
10
11
  }
11
12
 
12
13
  @font-face /* 1 */ {
14
+ font-display: swap;
13
15
  font-family: MJXTEX;
14
16
  src: url('~mathjax-full/es5/output/chtml/fonts/woff-v2/MathJax_Main-Regular.woff')
15
17
  format('woff');
16
18
  }
17
19
 
18
20
  @font-face /* 2 */ {
21
+ font-display: swap;
19
22
  font-family: MJXTEX-B;
20
23
  src: url('~mathjax-full/es5/output/chtml/fonts/woff-v2/MathJax_Main-Bold.woff')
21
24
  format('woff');
22
25
  }
23
26
 
24
27
  @font-face /* 3 */ {
28
+ font-display: swap;
25
29
  font-family: MJXTEX-I;
26
30
  src: url('~mathjax-full/es5/output/chtml/fonts/woff-v2/MathJax_Math-Italic.woff')
27
31
  format('woff');
28
32
  }
29
33
 
30
34
  @font-face /* 4 */ {
35
+ font-display: swap;
31
36
  font-family: MJXTEX-MI;
32
37
  src: url('~mathjax-full/es5/output/chtml/fonts/woff-v2/MathJax_Main-Italic.woff')
33
38
  format('woff');
34
39
  }
35
40
 
36
41
  @font-face /* 5 */ {
42
+ font-display: swap;
37
43
  font-family: MJXTEX-BI;
38
44
  src: url('~mathjax-full/es5/output/chtml/fonts/woff-v2/MathJax_Math-BoldItalic.woff')
39
45
  format('woff');
40
46
  }
41
47
 
42
48
  @font-face /* 6 */ {
49
+ font-display: swap;
43
50
  font-family: 'MJXTEX-S1';
44
51
  src: url('~mathjax-full/es5/output/chtml/fonts/woff-v2/MathJax_Size1-Regular.woff')
45
52
  format('woff');
46
53
  }
47
54
 
48
55
  @font-face /* 7 */ {
56
+ font-display: swap;
49
57
  font-family: 'MJXTEX-S2';
50
58
  src: url('~mathjax-full/es5/output/chtml/fonts/woff-v2/MathJax_Size2-Regular.woff')
51
59
  format('woff');
52
60
  }
53
61
 
54
62
  @font-face /* 8 */ {
63
+ font-display: swap;
55
64
  font-family: 'MJXTEX-S3';
56
65
  src: url('~mathjax-full/es5/output/chtml/fonts/woff-v2/MathJax_Size3-Regular.woff')
57
66
  format('woff');
58
67
  }
59
68
 
60
69
  @font-face /* 9 */ {
70
+ font-display: swap;
61
71
  font-family: 'MJXTEX-S4';
62
72
  src: url('~mathjax-full/es5/output/chtml/fonts/woff-v2/MathJax_Size4-Regular.woff')
63
73
  format('woff');
64
74
  }
65
75
 
66
76
  @font-face /* 10 */ {
77
+ font-display: swap;
67
78
  font-family: MJXTEX-A;
68
79
  src: url('~mathjax-full/es5/output/chtml/fonts/woff-v2/MathJax_AMS-Regular.woff')
69
80
  format('woff');
70
81
  }
71
82
 
72
83
  @font-face /* 11 */ {
84
+ font-display: swap;
73
85
  font-family: MJXTEX-C;
74
86
  src: url('~mathjax-full/es5/output/chtml/fonts/woff-v2/MathJax_Calligraphic-Regular.woff')
75
87
  format('woff');
76
88
  }
77
89
 
78
90
  @font-face /* 12 */ {
91
+ font-display: swap;
79
92
  font-family: MJXTEX-CB;
80
93
  src: url('~mathjax-full/es5/output/chtml/fonts/woff-v2/MathJax_Calligraphic-Bold.woff')
81
94
  format('woff');
82
95
  }
83
96
 
84
97
  @font-face /* 13 */ {
98
+ font-display: swap;
85
99
  font-family: MJXTEX-FR;
86
100
  src: url('~mathjax-full/es5/output/chtml/fonts/woff-v2/MathJax_Fraktur-Regular.woff')
87
101
  format('woff');
88
102
  }
89
103
 
90
104
  @font-face /* 14 */ {
105
+ font-display: swap;
91
106
  font-family: MJXTEX-FRB;
92
107
  src: url('~mathjax-full/es5/output/chtml/fonts/woff-v2/MathJax_Fraktur-Bold.woff')
93
108
  format('woff');
94
109
  }
95
110
 
96
111
  @font-face /* 15 */ {
112
+ font-display: swap;
97
113
  font-family: MJXTEX-SS;
98
114
  src: url('~mathjax-full/es5/output/chtml/fonts/woff-v2/MathJax_SansSerif-Regular.woff')
99
115
  format('woff');
100
116
  }
101
117
 
102
118
  @font-face /* 16 */ {
119
+ font-display: swap;
103
120
  font-family: MJXTEX-SSB;
104
121
  src: url('~mathjax-full/es5/output/chtml/fonts/woff-v2/MathJax_SansSerif-Bold.woff')
105
122
  format('woff');
@@ -112,24 +129,28 @@
112
129
  }
113
130
 
114
131
  @font-face /* 18 */ {
132
+ font-display: swap;
115
133
  font-family: MJXTEX-SC;
116
134
  src: url('~mathjax-full/es5/output/chtml/fonts/woff-v2/MathJax_Script-Regular.woff')
117
135
  format('woff');
118
136
  }
119
137
 
120
138
  @font-face /* 19 */ {
139
+ font-display: swap;
121
140
  font-family: MJXTEX-T;
122
141
  src: url('~mathjax-full/es5/output/chtml/fonts/woff-v2/MathJax_Typewriter-Regular.woff')
123
142
  format('woff');
124
143
  }
125
144
 
126
145
  @font-face /* 20 */ {
146
+ font-display: swap;
127
147
  font-family: MJXTEX-V;
128
148
  src: url('~mathjax-full/es5/output/chtml/fonts/woff-v2/MathJax_Vector-Regular.woff')
129
149
  format('woff');
130
150
  }
131
151
 
132
152
  @font-face /* 21 */ {
153
+ font-display: swap;
133
154
  font-family: MJXTEX-VB;
134
155
  src: url('~mathjax-full/es5/output/chtml/fonts/woff-v2/MathJax_Vector-Bold.woff')
135
156
  format('woff');