Mon, 06 Jul 2020 13:01:18 -0500
Use @neilsustc/markdown-it-katex instead of markdown-it-katex.
The latter is broken
21
3c71c525cec2
Use markdown-it as default markdown parser.
Tuomo Valkonen <tuomov@iki.fi>
parents:
diff
changeset
|
1 | #!/usr/bin/env node |
3c71c525cec2
Use markdown-it as default markdown parser.
Tuomo Valkonen <tuomov@iki.fi>
parents:
diff
changeset
|
2 | /*eslint no-console:0*/ |
3c71c525cec2
Use markdown-it as default markdown parser.
Tuomo Valkonen <tuomov@iki.fi>
parents:
diff
changeset
|
3 | |
3c71c525cec2
Use markdown-it as default markdown parser.
Tuomo Valkonen <tuomov@iki.fi>
parents:
diff
changeset
|
4 | var fs = require('fs'); |
3c71c525cec2
Use markdown-it as default markdown parser.
Tuomo Valkonen <tuomov@iki.fi>
parents:
diff
changeset
|
5 | var hljs = require('highlight.js'); |
3c71c525cec2
Use markdown-it as default markdown parser.
Tuomo Valkonen <tuomov@iki.fi>
parents:
diff
changeset
|
6 | |
28
9b75d0f5e042
Use @neilsustc/markdown-it-katex instead of markdown-it-katex.
Tuomo Valkonen <tuomov@iki.fi>
parents:
21
diff
changeset
|
7 | var katexOptions = { |
9b75d0f5e042
Use @neilsustc/markdown-it-katex instead of markdown-it-katex.
Tuomo Valkonen <tuomov@iki.fi>
parents:
21
diff
changeset
|
8 | throwOnError: false, |
9b75d0f5e042
Use @neilsustc/markdown-it-katex instead of markdown-it-katex.
Tuomo Valkonen <tuomov@iki.fi>
parents:
21
diff
changeset
|
9 | macros: { |
9b75d0f5e042
Use @neilsustc/markdown-it-katex instead of markdown-it-katex.
Tuomo Valkonen <tuomov@iki.fi>
parents:
21
diff
changeset
|
10 | "\\iprod": "{\\langle #1, #2\\rangle}", |
9b75d0f5e042
Use @neilsustc/markdown-it-katex instead of markdown-it-katex.
Tuomo Valkonen <tuomov@iki.fi>
parents:
21
diff
changeset
|
11 | "\\grad": "\\nabla", |
9b75d0f5e042
Use @neilsustc/markdown-it-katex instead of markdown-it-katex.
Tuomo Valkonen <tuomov@iki.fi>
parents:
21
diff
changeset
|
12 | "\\isect": "\\cap", |
9b75d0f5e042
Use @neilsustc/markdown-it-katex instead of markdown-it-katex.
Tuomo Valkonen <tuomov@iki.fi>
parents:
21
diff
changeset
|
13 | "\\union": "\\cup", |
9b75d0f5e042
Use @neilsustc/markdown-it-katex instead of markdown-it-katex.
Tuomo Valkonen <tuomov@iki.fi>
parents:
21
diff
changeset
|
14 | "\\Isect": "\\bigcap", |
9b75d0f5e042
Use @neilsustc/markdown-it-katex instead of markdown-it-katex.
Tuomo Valkonen <tuomov@iki.fi>
parents:
21
diff
changeset
|
15 | "\\Union": "\\bigcup", |
9b75d0f5e042
Use @neilsustc/markdown-it-katex instead of markdown-it-katex.
Tuomo Valkonen <tuomov@iki.fi>
parents:
21
diff
changeset
|
16 | "\\supp": "\\mathop{\\mathrm{supp}}", |
9b75d0f5e042
Use @neilsustc/markdown-it-katex instead of markdown-it-katex.
Tuomo Valkonen <tuomov@iki.fi>
parents:
21
diff
changeset
|
17 | "\\sign": "\\mathop{\\mathrm{sign}}", |
9b75d0f5e042
Use @neilsustc/markdown-it-katex instead of markdown-it-katex.
Tuomo Valkonen <tuomov@iki.fi>
parents:
21
diff
changeset
|
18 | "\\Id": "\\mathop{\\mathrm{Id}}", |
9b75d0f5e042
Use @neilsustc/markdown-it-katex instead of markdown-it-katex.
Tuomo Valkonen <tuomov@iki.fi>
parents:
21
diff
changeset
|
19 | "\\linear": "\\mathbb{L}" |
9b75d0f5e042
Use @neilsustc/markdown-it-katex instead of markdown-it-katex.
Tuomo Valkonen <tuomov@iki.fi>
parents:
21
diff
changeset
|
20 | } |
9b75d0f5e042
Use @neilsustc/markdown-it-katex instead of markdown-it-katex.
Tuomo Valkonen <tuomov@iki.fi>
parents:
21
diff
changeset
|
21 | }; |
9b75d0f5e042
Use @neilsustc/markdown-it-katex instead of markdown-it-katex.
Tuomo Valkonen <tuomov@iki.fi>
parents:
21
diff
changeset
|
22 | |
21
3c71c525cec2
Use markdown-it as default markdown parser.
Tuomo Valkonen <tuomov@iki.fi>
parents:
diff
changeset
|
23 | // process.argv[0] seems to be the node executable itself |
3c71c525cec2
Use markdown-it as default markdown parser.
Tuomo Valkonen <tuomov@iki.fi>
parents:
diff
changeset
|
24 | if(process.argv.length<=2){ |
3c71c525cec2
Use markdown-it as default markdown parser.
Tuomo Valkonen <tuomov@iki.fi>
parents:
diff
changeset
|
25 | console.error(`Usage: ${process.argv[1]} input_file`) |
3c71c525cec2
Use markdown-it as default markdown parser.
Tuomo Valkonen <tuomov@iki.fi>
parents:
diff
changeset
|
26 | process.exit(1); |
3c71c525cec2
Use markdown-it as default markdown parser.
Tuomo Valkonen <tuomov@iki.fi>
parents:
diff
changeset
|
27 | } |
3c71c525cec2
Use markdown-it as default markdown parser.
Tuomo Valkonen <tuomov@iki.fi>
parents:
diff
changeset
|
28 | |
3c71c525cec2
Use markdown-it as default markdown parser.
Tuomo Valkonen <tuomov@iki.fi>
parents:
diff
changeset
|
29 | fs.readFile(process.argv[2], 'utf8', function (err, input) { |
3c71c525cec2
Use markdown-it as default markdown parser.
Tuomo Valkonen <tuomov@iki.fi>
parents:
diff
changeset
|
30 | var output, md; |
3c71c525cec2
Use markdown-it as default markdown parser.
Tuomo Valkonen <tuomov@iki.fi>
parents:
diff
changeset
|
31 | |
3c71c525cec2
Use markdown-it as default markdown parser.
Tuomo Valkonen <tuomov@iki.fi>
parents:
diff
changeset
|
32 | if(err){ |
3c71c525cec2
Use markdown-it as default markdown parser.
Tuomo Valkonen <tuomov@iki.fi>
parents:
diff
changeset
|
33 | console.error(err.stack || err.message || String(err)); |
3c71c525cec2
Use markdown-it as default markdown parser.
Tuomo Valkonen <tuomov@iki.fi>
parents:
diff
changeset
|
34 | process.exit(1); |
3c71c525cec2
Use markdown-it as default markdown parser.
Tuomo Valkonen <tuomov@iki.fi>
parents:
diff
changeset
|
35 | } |
3c71c525cec2
Use markdown-it as default markdown parser.
Tuomo Valkonen <tuomov@iki.fi>
parents:
diff
changeset
|
36 | |
3c71c525cec2
Use markdown-it as default markdown parser.
Tuomo Valkonen <tuomov@iki.fi>
parents:
diff
changeset
|
37 | try{ |
3c71c525cec2
Use markdown-it as default markdown parser.
Tuomo Valkonen <tuomov@iki.fi>
parents:
diff
changeset
|
38 | var md = require('markdown-it')({ |
3c71c525cec2
Use markdown-it as default markdown parser.
Tuomo Valkonen <tuomov@iki.fi>
parents:
diff
changeset
|
39 | html: true, |
3c71c525cec2
Use markdown-it as default markdown parser.
Tuomo Valkonen <tuomov@iki.fi>
parents:
diff
changeset
|
40 | xhtmlOut: true, |
3c71c525cec2
Use markdown-it as default markdown parser.
Tuomo Valkonen <tuomov@iki.fi>
parents:
diff
changeset
|
41 | breaks: false, |
3c71c525cec2
Use markdown-it as default markdown parser.
Tuomo Valkonen <tuomov@iki.fi>
parents:
diff
changeset
|
42 | linkify: true, |
3c71c525cec2
Use markdown-it as default markdown parser.
Tuomo Valkonen <tuomov@iki.fi>
parents:
diff
changeset
|
43 | highlight: function (str, lang) { |
3c71c525cec2
Use markdown-it as default markdown parser.
Tuomo Valkonen <tuomov@iki.fi>
parents:
diff
changeset
|
44 | if (lang && hljs.getLanguage(lang)) { |
3c71c525cec2
Use markdown-it as default markdown parser.
Tuomo Valkonen <tuomov@iki.fi>
parents:
diff
changeset
|
45 | try{ |
3c71c525cec2
Use markdown-it as default markdown parser.
Tuomo Valkonen <tuomov@iki.fi>
parents:
diff
changeset
|
46 | return hljs.highlight(lang, str).value; |
3c71c525cec2
Use markdown-it as default markdown parser.
Tuomo Valkonen <tuomov@iki.fi>
parents:
diff
changeset
|
47 | } catch (__){} |
3c71c525cec2
Use markdown-it as default markdown parser.
Tuomo Valkonen <tuomov@iki.fi>
parents:
diff
changeset
|
48 | } |
3c71c525cec2
Use markdown-it as default markdown parser.
Tuomo Valkonen <tuomov@iki.fi>
parents:
diff
changeset
|
49 | return ''; |
3c71c525cec2
Use markdown-it as default markdown parser.
Tuomo Valkonen <tuomov@iki.fi>
parents:
diff
changeset
|
50 | } |
28
9b75d0f5e042
Use @neilsustc/markdown-it-katex instead of markdown-it-katex.
Tuomo Valkonen <tuomov@iki.fi>
parents:
21
diff
changeset
|
51 | }) |
9b75d0f5e042
Use @neilsustc/markdown-it-katex instead of markdown-it-katex.
Tuomo Valkonen <tuomov@iki.fi>
parents:
21
diff
changeset
|
52 | var mk = require('@neilsustc/markdown-it-katex'); |
9b75d0f5e042
Use @neilsustc/markdown-it-katex instead of markdown-it-katex.
Tuomo Valkonen <tuomov@iki.fi>
parents:
21
diff
changeset
|
53 | var mm = require('markdown-it-mark'); |
9b75d0f5e042
Use @neilsustc/markdown-it-katex instead of markdown-it-katex.
Tuomo Valkonen <tuomov@iki.fi>
parents:
21
diff
changeset
|
54 | md.use(mk, katexOptions).use(mm); |
21
3c71c525cec2
Use markdown-it as default markdown parser.
Tuomo Valkonen <tuomov@iki.fi>
parents:
diff
changeset
|
55 | output = md.render(input); |
3c71c525cec2
Use markdown-it as default markdown parser.
Tuomo Valkonen <tuomov@iki.fi>
parents:
diff
changeset
|
56 | } catch(e) { |
3c71c525cec2
Use markdown-it as default markdown parser.
Tuomo Valkonen <tuomov@iki.fi>
parents:
diff
changeset
|
57 | console.error(e.stack || e.message || String(e)); |
3c71c525cec2
Use markdown-it as default markdown parser.
Tuomo Valkonen <tuomov@iki.fi>
parents:
diff
changeset
|
58 | process.exit(1); |
3c71c525cec2
Use markdown-it as default markdown parser.
Tuomo Valkonen <tuomov@iki.fi>
parents:
diff
changeset
|
59 | } |
3c71c525cec2
Use markdown-it as default markdown parser.
Tuomo Valkonen <tuomov@iki.fi>
parents:
diff
changeset
|
60 | |
3c71c525cec2
Use markdown-it as default markdown parser.
Tuomo Valkonen <tuomov@iki.fi>
parents:
diff
changeset
|
61 | process.stdout.write(output); |
3c71c525cec2
Use markdown-it as default markdown parser.
Tuomo Valkonen <tuomov@iki.fi>
parents:
diff
changeset
|
62 | }); |
3c71c525cec2
Use markdown-it as default markdown parser.
Tuomo Valkonen <tuomov@iki.fi>
parents:
diff
changeset
|
63 | |
3c71c525cec2
Use markdown-it as default markdown parser.
Tuomo Valkonen <tuomov@iki.fi>
parents:
diff
changeset
|
64 |