Skip to content

Commit 524458c

Browse files
committed
Allow extensions to be specified on command line
Adds an 'extensions' option to config which takes a comma-separated list of extensions to add to the default set. Then adds --extensions parameter to each command-line tool to specify this value. This allows use of MathJax features such as displaying invalid TeX instead of failing to render (--extensions TeX/noUndefined), and stripping out dangerous links from MathML (--extensions Safe).
1 parent af95c00 commit 524458c

File tree

16 files changed

+105
-19
lines changed

16 files changed

+105
-19
lines changed

bin/am2mml

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,10 @@ var argv = require("yargs")
4343
semantics: {
4444
boolean: true,
4545
describe: "add AsciiMath code in <semantics> tag"
46+
},
47+
extensions: {
48+
default: "",
49+
describe: "extra MathJax extensions e.g. 'Safe,TeX/noUndefined'"
4650
}
4751
})
4852
.argv;
@@ -52,7 +56,8 @@ mjAPI.config({
5256
menuSettings: {
5357
semantics: argv.semantics
5458
}
55-
}
59+
},
60+
extensions: argv.extensions
5661
});
5762
mjAPI.start();
5863

bin/am2png

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -48,12 +48,16 @@ var argv = require("yargs")
4848
width: {
4949
default: 100,
5050
describe: "width of container in ex"
51+
},
52+
extensions: {
53+
default: "",
54+
describe: "extra MathJax extensions e.g. 'Safe,TeX/noUndefined'"
5155
}
5256
})
5357
.argv;
5458

5559
if (argv.font === "STIX") argv.font = "STIX-Web";
56-
mjAPI.config({MathJax: {SVG: {font: argv.font}}});
60+
mjAPI.config({MathJax: {SVG: {font: argv.font}}, extensions: argv.extensions});
5761
mjAPI.start();
5862

5963
if (argv.dpi === 0) {argv.dpi = argv.ex * 16} // pixels properly sized

bin/am2svg

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -55,12 +55,16 @@ var argv = require("yargs")
5555
width: {
5656
default: 100,
5757
describe: "width of container in ex"
58+
},
59+
extensions: {
60+
default: "",
61+
describe: "extra MathJax extensions e.g. 'Safe,TeX/noUndefined'"
5862
}
5963
})
6064
.argv;
6165

6266
if (argv.font === "STIX") argv.font = "STIX-Web";
63-
mjAPI.config({MathJax: {SVG: {font: argv.font}}});
67+
mjAPI.config({MathJax: {SVG: {font: argv.font}}, extensions: argv.extensions});
6468
mjAPI.start();
6569

6670
mjAPI.typeset({

bin/mml2mml

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -40,11 +40,15 @@ var argv = require("yargs")
4040
speechstyle: {
4141
default: "default",
4242
describe: "style to use for speech text (default, brief, sbrief)"
43+
},
44+
extensions: {
45+
default: "",
46+
describe: "extra MathJax extensions e.g. 'Safe,TeX/noUndefined'"
4347
}
4448
})
4549
.argv;
4650

47-
mjAPI.config({});
51+
mjAPI.config({extensions: argv.extensions});
4852
mjAPI.start();
4953

5054
mjAPI.typeset({

bin/mml2png

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -47,12 +47,16 @@ var argv = require("yargs")
4747
width: {
4848
default: 100,
4949
describe: "width of container in ex"
50+
},
51+
extensions: {
52+
default: "",
53+
describe: "extra MathJax extensions e.g. 'Safe,TeX/noUndefined'"
5054
}
5155
})
5256
.argv;
5357

5458
if (argv.font === "STIX") argv.font = "STIX-Web";
55-
mjAPI.config({MathJax: {SVG: {font: argv.font}}});
59+
mjAPI.config({MathJax: {SVG: {font: argv.font}}, extensions: argv.extensions});
5660
mjAPI.start();
5761

5862
if (argv.dpi === 0) {argv.dpi = argv.ex * 16} // pixels properly sized

bin/mml2svg

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -55,12 +55,16 @@ var argv = require("yargs")
5555
width: {
5656
default: 100,
5757
describe: "width of container in ex"
58+
},
59+
extensions: {
60+
default: "",
61+
describe: "extra MathJax extensions e.g. 'Safe,TeX/noUndefined'"
5862
}
5963
})
6064
.argv;
6165

6266
if (argv.font === "STIX") argv.font = "STIX-Web";
63-
mjAPI.config({MathJax: {SVG: {font: argv.font}}});
67+
mjAPI.config({MathJax: {SVG: {font: argv.font}}, extensions: argv.extensions});
6468
mjAPI.start();
6569

6670
mjAPI.typeset({

bin/mml2svg-html5

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -63,12 +63,16 @@ var argv = require("yargs")
6363
width: {
6464
default: 100,
6565
describe: "width of container in ex"
66+
},
67+
extensions: {
68+
default: "",
69+
describe: "extra MathJax extensions e.g. 'Safe,TeX/noUndefined'"
6670
}
6771
})
6872
.argv;
6973

7074
if (argv.font === "STIX") argv.font = "STIX-Web";
71-
mjAPI.config({MathJax: {SVG: {font: argv.font}}});
75+
mjAPI.config({MathJax: {SVG: {font: argv.font}}, extensions: argv.extensions});
7276
mjAPI.start();
7377

7478
//

bin/page2mml

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -71,13 +71,17 @@ var argv = require("yargs")
7171
width: {
7272
default: 100,
7373
describe: "width of container in ex"
74+
},
75+
extensions: {
76+
default: "",
77+
describe: "extra MathJax extensions e.g. 'Safe,TeX/noUndefined'"
7478
}
7579
})
7680
.argv;
7781

7882
argv.format = argv.format.split(/ *, */);
7983

80-
mjAPI.config({MathJax: {menuSettings: {semantics: argv.semantics}}});
84+
mjAPI.config({MathJax: {menuSettings: {semantics: argv.semantics}}, extensions: argv.extensions});
8185
mjAPI.start();
8286

8387
//

bin/page2png

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -83,13 +83,17 @@ var argv = require("yargs")
8383
width: {
8484
default: 100,
8585
describe: "width of container in ex"
86+
},
87+
extensions: {
88+
default: "",
89+
describe: "extra MathJax extensions e.g. 'Safe,TeX/noUndefined'"
8690
}
8791
})
8892
.argv;
8993

9094
argv.format = argv.format.split(/ *, */);
9195
if (argv.font === "STIX") argv.font = "STIX-Web";
92-
mjAPI.config({MathJax: {SVG: {font: argv.font}}});
96+
mjAPI.config({MathJax: {SVG: {font: argv.font}}, extensions: argv.extensions});
9397
mjAPI.start();
9498

9599
if (argv.dpi === 0) {argv.dpi = argv.ex * 16} // pixels properly sized

bin/page2svg

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -87,13 +87,17 @@ var argv = require("yargs")
8787
width: {
8888
default: 100,
8989
describe: "width of container in ex"
90+
},
91+
extensions: {
92+
default: "",
93+
describe: "extra MathJax extensions e.g. 'Safe,TeX/noUndefined'"
9094
}
9195
})
9296
.argv;
9397

9498
argv.format = argv.format.split(/ *, */);
9599
if (argv.font === "STIX") argv.font = "STIX-Web";
96-
mjAPI.config({MathJax: {SVG: {font: argv.font}}});
100+
mjAPI.config({MathJax: {SVG: {font: argv.font}}, extensions: argv.extensions});
97101
mjAPI.start();
98102

99103
//

0 commit comments

Comments
 (0)