Skip to content

Commit e9e83a6

Browse files
committed
Some more cleanup and adaptation of samples.
1 parent 692034f commit e9e83a6

13 files changed

+94
-69
lines changed

README.md

+59-19
Original file line numberDiff line numberDiff line change
@@ -37,11 +37,14 @@ localhost/MathJax-dev/v3-lab.html
3737
```
3838

3939

40-
## Running samples
40+
## Running Samples
4141

4242
Samples are small scripts to test various MathJax features or to use MathJax
4343
directly for a specific purpose. They are particularly useful to work with local
44-
MathJax variants or test changes to the code base directly.
44+
MathJax variants or test changes to the code base directly. Samples can be run
45+
using `node` or in a browser.
46+
47+
### Running Samples in Node
4548

4649
Samples are run using `node` and loaded using the `load.js` script. The general command is:
4750

@@ -64,52 +67,89 @@ node load.js samples/tex2mml.js x^2
6467
</math>
6568
```
6669

67-
Not all sample scripts are currently working. Here is a list of working and currently unusable samples:
70+
### Running Samples in Node
71+
72+
Samples can be run in the browser using the `load.html` page. This either loads
73+
the `main.js` file or the particular sample file given in the parameters. For example, running
74+
75+
[http://localhost/v3-dev/load.html?samples/asciimath-document.js](http://localhost/v3-dev/load.html?samples/asciimath-document.js)
76+
77+
will give you a rendered page of AsciiMath expressions in the browser. Note,
78+
that the output will also be displayed on the console. In fact, many scripts
79+
will only produce console output. For example, the URL:
80+
81+
[http://localhost/v3-dev/load.html?samples/tex2mml.js&x^2](http://localhost/v3-dev/load.html?samples/tex2mml.js&x^2)
82+
83+
will print the corresponding MathML expression in the console:
84+
85+
``` html
86+
<math display="block">
87+
<msup>
88+
<mi>x</mi>
89+
<mn>2</mn>
90+
</msup>
91+
</math>
92+
```
93+
94+
95+
### Scripts
96+
97+
Not all sample scripts are currently working. Here are two lists of the samples
98+
that are currently working or broken. Sample names should be self-explanatory.
99+
68100

69101
#### Working scripts
70102

103+
71104
``` shell
72105
samples/asciimath2mml.js
106+
samples/asciimath-document.js
73107
samples/asciimath-json.js
74-
samples/notagids.js
108+
samples/asyncLoad.js
109+
samples/bits.js
110+
samples/css.js
111+
samples/find-asciimath.js
112+
samples/find-mml.js
113+
samples/find-strings.js
114+
samples/find-tex-dollars.js
115+
samples/find-tex.js
75116
samples/mml2html.js
76117
samples/mml2svg.js
77118
samples/mml-bbox.js
78119
samples/mml-nodes.js
120+
samples/notagids.js
79121
samples/tag-format.js
122+
samples/test-adaptor.js
123+
samples/test-styles.js
80124
samples/tex2html.js
81125
samples/tex2mml.js
82126
samples/tex2svg.js
127+
samples/tex-document.js
83128
samples/tex-json.js
129+
samples/tex-multi-document.js
84130
samples/tex-nodes.js
85131
samples/tex-string.js
86132
```
133+
#### Obsolete Packages
134+
135+
``` shell
136+
samples/convert-tex2mml.js same as tex2mml.js
137+
samples/tex-typeset.js same as tex2html.js
138+
139+
```
140+
87141

88142
#### Broken scripts
89143

90144
``` shell
91145
samples/asciimath2mml-component.js
92-
samples/asciimath-document.js
93-
samples/asyncLoad.js
94-
samples/bits.js
95-
samples/convert-tex2mml.js
96-
samples/css.js
97-
samples/find-asciimath.js
98-
samples/find-mml.js
99-
samples/find-strings.js
100-
samples/find-tex-dollars.js
101-
samples/find-tex.js
102146
samples/html-full.js
103147
samples/mfenced.js
104-
samples/test-adaptor.js
105-
samples/test-styles.js
106148
samples/tex2mml-component.js
107149
samples/tex2mml-require.js
108150
samples/tex2mml-speech.js
109151
samples/tex2svg-speech.js
110-
samples/tex-document.js
111-
samples/tex-multi-document.js
112-
samples/tex-typeset.js
152+
113153
```
114154

115155

main.js

+10-10
Original file line numberDiff line numberDiff line change
@@ -1,22 +1,22 @@
1-
import {MathJax} from './mathjax3/mathjax.js';
1+
import {mathjax} from './mathjax3/js/mathjax.js';
22

3-
import {TeX} from './mathjax3/input/tex.js';
4-
import {RegisterHTMLHandler} from './mathjax3/handlers/html.js';
5-
import {chooseAdaptor} from './mathjax3/adaptors/chooseAdaptor.js';
6-
import {CHTML} from './mathjax3/output/chtml.js';
3+
import {TeX} from './mathjax3/js/input/tex.js';
4+
import {RegisterHTMLHandler} from './mathjax3/js/handlers/html.js';
5+
import {chooseAdaptor} from './mathjax3/js/adaptors/chooseAdaptor.js';
6+
import {CHTML} from './mathjax3/js/output/chtml.js';
7+
import {STATE} from './mathjax3/js/core/MathItem.js';
78

89
const adaptor = chooseAdaptor();
910
RegisterHTMLHandler(adaptor);
1011

11-
const html = MathJax.document('<html></html>', {
12+
const html = mathjax.document('<html></html>', {
1213
InputJax: new TeX(),
1314
OutputJax: new CHTML()
1415
});
1516

16-
MathJax.handleRetriesFor(() => {
17+
mathjax.handleRetriesFor(() => {
1718

18-
html.TestMath(process.argv[3] || '').compile().typeset();
19-
let math = html.math.pop();
20-
console.log(adaptor.outerHTML(math.typesetRoot));
19+
let math = html.convert(process.argv[3] || '', {end: STATE.TYPESET});
20+
console.log(adaptor.outerHTML(math));
2121

2222
}).catch(err => console.log(err.stack));

samples/asciimath-document.js

+3-7
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ import {mathjax} from '../mathjax3/js/mathjax.js';
33
import {AsciiMath} from '../mathjax3/js/input/asciimath.js';
44
import {CHTML} from '../mathjax3/js/output/chtml.js';
55
import {adaptor, htmlDocument} from './lib/chooseHTML.js';
6+
import {STATE} from '../mathjax3/js/core/MathItem.js';
67

78
const OPTIONS = {
89
InputJax: new AsciiMath(),
@@ -28,12 +29,7 @@ const html = htmlDocument(HTML, OPTIONS);
2829

2930
mathjax.handleRetriesFor(() => {
3031

31-
html.findMath()
32-
.compile()
33-
.getMetrics()
34-
.typeset()
35-
.updateDocument();
36-
37-
console.log(adaptor.outerHTML(adaptor.parent(adaptor.body(html.document))));
32+
html.render();
33+
console.log(adaptor.outerHTML(adaptor.parent(adaptor.body(html.document))));
3834

3935
}).catch(err => console.log(err.stack));

samples/asyncLoad.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
import {asyncLoad} from '../mathjax3/js/util/AsyncLoad.js';
22
import {setBaseURL} from '../mathjax3/js/util/asyncLoad/system.js';
33

4-
asyncLoad('./util/entities/all.js')
4+
asyncLoad('mathjax3/js/util/entities/all.js')
55
.then(() => console.log("OK"))
66
.catch(err => console.log(err));

samples/bits.js

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
1-
import {BitField} from '../mathjax3/js/util/BitField.js';
1+
import {BitFieldClass} from '../mathjax3/js/util/BitField.js';
22

3-
const MyBits = BitField('test1', 'test2');
3+
const MyBits = BitFieldClass('test1', 'test2');
44

55
const bits = new MyBits();
66

samples/lib/chooseHTML.js

+3-3
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
1-
import {mathjax} from '../../mathjax3/mathjax.js';
1+
import {mathjax} from '../../mathjax3/js/mathjax.js';
22

3-
import {RegisterHTMLHandler} from '../../mathjax3/handlers/html.js';
4-
import {chooseAdaptor} from '../../mathjax3/adaptors/chooseAdaptor.js';
3+
import {RegisterHTMLHandler} from '../../mathjax3/js/handlers/html.js';
4+
import {chooseAdaptor} from '../../mathjax3/js/adaptors/chooseAdaptor.js';
55

66
export const adaptor = chooseAdaptor();
77

samples/test-adaptor.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
import {liteAdaptor} from '../mathjax3/js/adaptors/liteAdaptor.js';
22
import {jsdomAdaptor} from '../mathjax3/js/adaptors/jsdomAdaptor.js';
33

4-
import {JSDOM} from 'jsdom';
4+
let JSDOM = System.nodeRequire('jsdom').JSDOM;
55

66
const adaptor = liteAdaptor();
77
const jsdom = jsdomAdaptor(JSDOM);

samples/test-styles.js

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
1-
import {Styles} from '../mathjax3/js/util/styles.js';
1+
import {Styles} from '../mathjax3/js/util/Styles.js';
22

3-
import {JSDOM} from 'jsdom';
3+
let JSDOM = System.nodeRequire('jsdom').JSDOM;
44

55
const document = new JSDOM().window.document;
66
const span = document.createElement('span');

samples/tex-document.js

+2-7
Original file line numberDiff line numberDiff line change
@@ -18,12 +18,7 @@ const html = htmlDocument(HTML, OPTIONS);
1818

1919
mathjax.handleRetriesFor(() => {
2020

21-
html.findMath()
22-
.compile()
23-
.getMetrics()
24-
.typeset()
25-
.updateDocument();
26-
27-
console.log(adaptor.outerHTML(adaptor.parent(adaptor.body(html.document))));
21+
html.render();
22+
console.log(adaptor.outerHTML(adaptor.parent(adaptor.body(html.document))));
2823

2924
}).catch(err => console.log(err.stack));

samples/tex-multi-document.js

+3-8
Original file line numberDiff line numberDiff line change
@@ -24,13 +24,8 @@ const html = htmlDocument(HTML, OPTIONS);
2424

2525
mathjax.handleRetriesFor(() => {
2626

27-
html.findMath({elements: ['#p1']})
28-
.compile()
29-
.getMetrics()
30-
.typeset()
31-
.updateDocument()
32-
.reset();
33-
34-
console.log(adaptor.outerHTML(adaptor.parent(adaptor.body(html.document))));
27+
html.options.elements = ['#p1'];
28+
html.render();
29+
console.log(adaptor.outerHTML(adaptor.parent(adaptor.body(html.document))));
3530

3631
}).catch(err => console.log(err.stack));

samples/tex2mml-component.js

+3-3
Original file line numberDiff line numberDiff line change
@@ -3,10 +3,10 @@ global.MathJax = {
33
failed: (error => console.log(`>> MathJax(${error.package || '?'}): ${error.message} ${error.stack}`)),
44
load: ['adaptors/liteDOM', 'input/tex', /*'a11y/semantic-enrich'*/ '[tex]/tagFormat'],
55
paths: {
6-
mathjax: '../components/dist',
6+
mathjax: '../mathjax3/components/dist',
77
sre: '../mathjax3/js/a11y/sre-node'
88
},
9-
source: require('../components/src/source.js').source,
9+
source: require('../mathjax3/components/src/source.js').source,
1010
// require: (url) => System.import(url)
1111
require: require
1212
},
@@ -36,5 +36,5 @@ global.MathJax = {
3636
//require('../components/src/tex-chtml/tex-chtml.js');
3737

3838
//require('../components/dist/startup.js');
39-
require('../components/src/startup/startup.js');
39+
require('../mathjax3/components/src/startup/startup.js');
4040

samples/tex2mml.js

-1
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,6 @@ let toMml = (node => visitor.visitTree(node, html.document));
1919
mathjax.handleRetriesFor(() => {
2020

2121
let math = html.convert(process.argv[3] || '', {end: STATE.CONVERT});
22-
math.setTeXclass();
2322
console.log(toMml(math));
2423

2524
}).catch(err => console.log(err.stack));

tex_interactive.js

+5-5
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
11

2-
const mj = require('../../mathjax3/mathjax.js');
3-
const tex = require('../../mathjax3/input/tex.js');
2+
const mj = require('../../mathjax3/js/mathjax.js');
3+
const tex = require('../../mathjax3/js/input/tex.js');
44
const texold = require('../../mathjax2/input/TeX.js');
55
texold.LegacyTeX.Translate('x^2') // => MmlNode
6-
require('../../mathjax3/handlers/html.js');
6+
require('../../mathjax3/js/handlers/html.js');
77

88
let html = mj.MathJax.document('<html></html>', {
99
InputJax: new tex.TeX()
@@ -17,9 +17,9 @@ var math = html.math.pop(); // => MathItem.
1717
html.processed.TextMath = false;
1818

1919
// Running a visitor.
20-
const mmlVisitor = require('../../mathjax3/core/MmlTree/MmlVisitor.js');
20+
const mmlVisitor = require('../../mathjax3/js/core/MmlTree/MmlVisitor.js');
2121
var mmv = new mmlVisitor.MmlVisitor();
22-
const jmmlVisitor = require('../../mathjax3/core/MmlTree/JsonMmlVisitor.js');
22+
const jmmlVisitor = require('../../mathjax3/js/core/MmlTree/JsonMmlVisitor.js');
2323
mmv = new jmmlVisitor.JsonMmlVisitor();
2424
var node = texold.LegacyTeX.Translate('x^2');
2525
mmv.visitTree(node);

0 commit comments

Comments
 (0)