Mon, 06 Jul 2020 12:51:11 -0500
Attempt markdown-it-texmath instead of markdown-it-katex.
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 | |
3c71c525cec2
Use markdown-it as default markdown parser.
Tuomo Valkonen <tuomov@iki.fi>
parents:
diff
changeset
|
7 | // 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
|
8 | if(process.argv.length<=2){ |
3c71c525cec2
Use markdown-it as default markdown parser.
Tuomo Valkonen <tuomov@iki.fi>
parents:
diff
changeset
|
9 | console.error(`Usage: ${process.argv[1]} input_file`) |
3c71c525cec2
Use markdown-it as default markdown parser.
Tuomo Valkonen <tuomov@iki.fi>
parents:
diff
changeset
|
10 | process.exit(1); |
3c71c525cec2
Use markdown-it as default markdown parser.
Tuomo Valkonen <tuomov@iki.fi>
parents:
diff
changeset
|
11 | } |
3c71c525cec2
Use markdown-it as default markdown parser.
Tuomo Valkonen <tuomov@iki.fi>
parents:
diff
changeset
|
12 | |
3c71c525cec2
Use markdown-it as default markdown parser.
Tuomo Valkonen <tuomov@iki.fi>
parents:
diff
changeset
|
13 | 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
|
14 | var output, md; |
3c71c525cec2
Use markdown-it as default markdown parser.
Tuomo Valkonen <tuomov@iki.fi>
parents:
diff
changeset
|
15 | |
3c71c525cec2
Use markdown-it as default markdown parser.
Tuomo Valkonen <tuomov@iki.fi>
parents:
diff
changeset
|
16 | if(err){ |
3c71c525cec2
Use markdown-it as default markdown parser.
Tuomo Valkonen <tuomov@iki.fi>
parents:
diff
changeset
|
17 | console.error(err.stack || err.message || String(err)); |
3c71c525cec2
Use markdown-it as default markdown parser.
Tuomo Valkonen <tuomov@iki.fi>
parents:
diff
changeset
|
18 | process.exit(1); |
3c71c525cec2
Use markdown-it as default markdown parser.
Tuomo Valkonen <tuomov@iki.fi>
parents:
diff
changeset
|
19 | } |
3c71c525cec2
Use markdown-it as default markdown parser.
Tuomo Valkonen <tuomov@iki.fi>
parents:
diff
changeset
|
20 | |
3c71c525cec2
Use markdown-it as default markdown parser.
Tuomo Valkonen <tuomov@iki.fi>
parents:
diff
changeset
|
21 | try{ |
3c71c525cec2
Use markdown-it as default markdown parser.
Tuomo Valkonen <tuomov@iki.fi>
parents:
diff
changeset
|
22 | var md = require('markdown-it')({ |
3c71c525cec2
Use markdown-it as default markdown parser.
Tuomo Valkonen <tuomov@iki.fi>
parents:
diff
changeset
|
23 | html: true, |
3c71c525cec2
Use markdown-it as default markdown parser.
Tuomo Valkonen <tuomov@iki.fi>
parents:
diff
changeset
|
24 | xhtmlOut: true, |
3c71c525cec2
Use markdown-it as default markdown parser.
Tuomo Valkonen <tuomov@iki.fi>
parents:
diff
changeset
|
25 | breaks: false, |
3c71c525cec2
Use markdown-it as default markdown parser.
Tuomo Valkonen <tuomov@iki.fi>
parents:
diff
changeset
|
26 | linkify: true, |
3c71c525cec2
Use markdown-it as default markdown parser.
Tuomo Valkonen <tuomov@iki.fi>
parents:
diff
changeset
|
27 | highlight: function (str, lang) { |
3c71c525cec2
Use markdown-it as default markdown parser.
Tuomo Valkonen <tuomov@iki.fi>
parents:
diff
changeset
|
28 | if (lang && hljs.getLanguage(lang)) { |
3c71c525cec2
Use markdown-it as default markdown parser.
Tuomo Valkonen <tuomov@iki.fi>
parents:
diff
changeset
|
29 | try{ |
3c71c525cec2
Use markdown-it as default markdown parser.
Tuomo Valkonen <tuomov@iki.fi>
parents:
diff
changeset
|
30 | return hljs.highlight(lang, str).value; |
3c71c525cec2
Use markdown-it as default markdown parser.
Tuomo Valkonen <tuomov@iki.fi>
parents:
diff
changeset
|
31 | } catch (__){} |
3c71c525cec2
Use markdown-it as default markdown parser.
Tuomo Valkonen <tuomov@iki.fi>
parents:
diff
changeset
|
32 | } |
3c71c525cec2
Use markdown-it as default markdown parser.
Tuomo Valkonen <tuomov@iki.fi>
parents:
diff
changeset
|
33 | return ''; |
3c71c525cec2
Use markdown-it as default markdown parser.
Tuomo Valkonen <tuomov@iki.fi>
parents:
diff
changeset
|
34 | } |
3c71c525cec2
Use markdown-it as default markdown parser.
Tuomo Valkonen <tuomov@iki.fi>
parents:
diff
changeset
|
35 | }), |
27
8f40424fb02e
Attempt markdown-it-texmath instead of markdown-it-katex.
Tuomo Valkonen <tuomov@iki.fi>
parents:
21
diff
changeset
|
36 | mk = require('markdown-it-texmath', { |
8f40424fb02e
Attempt markdown-it-texmath instead of markdown-it-katex.
Tuomo Valkonen <tuomov@iki.fi>
parents:
21
diff
changeset
|
37 | engine: require('katex'), |
8f40424fb02e
Attempt markdown-it-texmath instead of markdown-it-katex.
Tuomo Valkonen <tuomov@iki.fi>
parents:
21
diff
changeset
|
38 | delimiters:'dollars' |
8f40424fb02e
Attempt markdown-it-texmath instead of markdown-it-katex.
Tuomo Valkonen <tuomov@iki.fi>
parents:
21
diff
changeset
|
39 | }), |
21
3c71c525cec2
Use markdown-it as default markdown parser.
Tuomo Valkonen <tuomov@iki.fi>
parents:
diff
changeset
|
40 | mm = require('markdown-it-mark'); |
3c71c525cec2
Use markdown-it as default markdown parser.
Tuomo Valkonen <tuomov@iki.fi>
parents:
diff
changeset
|
41 | md.use(mk).use(mm); |
3c71c525cec2
Use markdown-it as default markdown parser.
Tuomo Valkonen <tuomov@iki.fi>
parents:
diff
changeset
|
42 | output = md.render(input); |
3c71c525cec2
Use markdown-it as default markdown parser.
Tuomo Valkonen <tuomov@iki.fi>
parents:
diff
changeset
|
43 | } catch(e) { |
3c71c525cec2
Use markdown-it as default markdown parser.
Tuomo Valkonen <tuomov@iki.fi>
parents:
diff
changeset
|
44 | console.error(e.stack || e.message || String(e)); |
3c71c525cec2
Use markdown-it as default markdown parser.
Tuomo Valkonen <tuomov@iki.fi>
parents:
diff
changeset
|
45 | process.exit(1); |
3c71c525cec2
Use markdown-it as default markdown parser.
Tuomo Valkonen <tuomov@iki.fi>
parents:
diff
changeset
|
46 | } |
3c71c525cec2
Use markdown-it as default markdown parser.
Tuomo Valkonen <tuomov@iki.fi>
parents:
diff
changeset
|
47 | |
3c71c525cec2
Use markdown-it as default markdown parser.
Tuomo Valkonen <tuomov@iki.fi>
parents:
diff
changeset
|
48 | process.stdout.write(output); |
3c71c525cec2
Use markdown-it as default markdown parser.
Tuomo Valkonen <tuomov@iki.fi>
parents:
diff
changeset
|
49 | }); |
3c71c525cec2
Use markdown-it as default markdown parser.
Tuomo Valkonen <tuomov@iki.fi>
parents:
diff
changeset
|
50 | |
3c71c525cec2
Use markdown-it as default markdown parser.
Tuomo Valkonen <tuomov@iki.fi>
parents:
diff
changeset
|
51 |