You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
This repository contains a library that provides an API to call [MathJax](https://github.com/mathjax/mathjax) from Node.js programs. The API converts individual math expressions (in any of MathJax's input formats) into HTML (with CSS), SVG or MathML code.
3
+
This repository contains a library that provides an API to call [MathJax](https://github.com/mathjax/mathjax) from Node.js programs. The API converts individual math expressions (in any of MathJax's input formats) into HTML (with CSS), SVG, or MathML code.
4
4
5
5
Use
6
6
@@ -11,30 +11,9 @@ npm install mathjax-node
11
11
to install mathjax-node and its dependencies.
12
12
13
13
**Note:**
14
+
The current version of mathjax-node requires Node.js v6 or later, and uses jsdom version 10.
14
15
15
-
mathjax-node requires Node.js v4 or later.
16
-
17
-
**Breaking Changes in v1.0:**
18
-
19
-
20
-
mathjax-node v1.0 makes breaking changes to the following features from the pre-releases.
21
-
22
-
-[CHANGED]`lib/mj-single.js` has been renamed to `lib/main.js` (and set as `main` in `package.json`, i.e., `require('mathjax-node')` will load it.
23
-
-[REMOVED]`lib/mj-page.js` (API for processing HTML-fragments) and related CLI tools
24
-
-[REMOVED] speech-rule-engine integration
25
-
-[REMOVED] PNG generation
26
-
-[REMOVED] CLI tools in `bin/`
27
-
28
-
These features can easily be recreated in separate modules for greater flexibility. For examples, see
Be sure to also check out other [projects on NPM that depend on mathjax-node](https://www.npmjs.com/browse/depended/mathjax-node).
36
-
37
-
# Getting started
16
+
## Getting started
38
17
39
18
mathjax-node provides a library, `./lib/main.js`. Below is a very minimal example for using it - the tests and the examples mentioned above provide more advanced examples.
40
19
@@ -52,8 +31,8 @@ var yourMath = 'E = mc^2';
52
31
53
32
mjAPI.typeset({
54
33
math: yourMath,
55
-
format:"TeX", // "inline-TeX", "MathML"
56
-
mml:true, // svg:true,
34
+
format:"TeX", //or "inline-TeX", "MathML"
35
+
mml:true, //or svg:true, or html:true
57
36
}, function (data) {
58
37
if (!data.errors) {console.log(data.mml)}
59
38
// will produce:
@@ -79,12 +58,12 @@ The `config` method is used to set _global_ configuration options. Its default o
79
58
80
59
```javascript
81
60
{
82
-
displayMessages:false, // determines whether Message.Set() calls are logged
83
-
displayErrors:true, // determines whether error messages are shown on the console
61
+
displayMessages:false, // determines whether Message.Set() calls are logged
62
+
displayErrors:true, // determines whether error messages are shown on the console
84
63
undefinedCharError:false, // determines whether "unknown characters" (i.e., no glyph in the configured fonts) are saved in the error array
85
-
extensions:'', // a convenience option to add MathJax extensions
86
-
fontURL:'https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.0/fonts/HTML-CSS', // for webfont urls in the CSS for HTML output
87
-
MathJax: { } // standard MathJax configuration options, see https://docs.mathjax.org for more detail.
64
+
extensions:'', // a convenience option to add MathJax extensions
65
+
fontURL:'https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/fonts/HTML-CSS', // for webfont urls in the CSS for HTML output
66
+
MathJax: { } // standard MathJax configuration options, see https://docs.mathjax.org for more detail.
88
67
}
89
68
```
90
69
@@ -130,7 +109,7 @@ The following are the default input options.
130
109
131
110
speakText:true, // add textual alternative (for TeX/asciimath the input string, for MathML a dummy string)
132
111
133
-
state: {}, // an object to store information from multiple calls (e.g., <defs> if useGlobalCache, counter for equation numbering if equationNumbers ar )
112
+
state: {}, // an object to store information from multiple calls (e.g., <defs> if useGlobalCache, counter for equation numbering if equationNumbers ar )
134
113
timeout:10*1000, // 10 second timeout before restarting MathJax
135
114
}
136
115
```
@@ -171,3 +150,35 @@ The `result` object will contain (at most) the following structure:
171
150
If the `errors` array is non-empty, the Promise will reject, and be passed the `errors` array.
172
151
173
152
The `options` contains the configuration object passed to `typeset`; this can be useful for passing other data along or for identifying which `typeset()` call is associated with this (`callback`) call (in case you use the same `callback` function for more than one `typeset()`).
153
+
154
+
## Change History
155
+
156
+
### Breaking Changes in v2.0:
157
+
158
+
mathjax-node v2.0 makes breaking changes as follows:
159
+
160
+
-[CHANGED] mathjax-node now requires version 6 of Node.js (the minimum used to be Node.js version 4).
161
+
-[CHANGED] mathjax-node now uses version 10 of jsdom. Since the jsdom API changed from 9 to 10, that means if you used jsdom in your code that calls mathjax-node, you may need to update how you call jsdom.
162
+
163
+
164
+
### Breaking Changes in v1.0:
165
+
166
+
mathjax-node v1.0 makes breaking changes to the following features from the pre-releases.
167
+
168
+
-[CHANGED]`lib/mj-single.js` has been renamed to `lib/main.js` (and set as `main` in `package.json`, i.e., `require('mathjax-node')` will load it.
169
+
-[REMOVED]`lib/mj-page.js` (API for processing HTML-fragments) and related CLI tools
170
+
-[REMOVED] speech-rule-engine integration
171
+
-[REMOVED] PNG generation
172
+
-[REMOVED] CLI tools in `bin/`
173
+
174
+
These features can easily be recreated in separate modules for greater flexibility. For examples, see
0 commit comments