marked-katex-extension 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/package.json ADDED
@@ -0,0 +1,56 @@
1
+ {
2
+ "name": "marked-katex-extension",
3
+ "version": "1.0.0",
4
+ "description": "MarkedJS extesion to render katex",
5
+ "main": "./src/index.js",
6
+ "browser": "./lib/index.umd.js",
7
+ "type": "module",
8
+ "keywords": [
9
+ "marked",
10
+ "katex",
11
+ "extension"
12
+ ],
13
+ "scripts": {
14
+ "test": "jest --verbose",
15
+ "test:cover": "jest --coverage",
16
+ "lint": "eslint .",
17
+ "build": "rollup -c rollup.config.umd.js"
18
+ },
19
+ "repository": {
20
+ "type": "git",
21
+ "url": "git+https://github.com/UziTech/marked-katex-extension.git"
22
+ },
23
+ "author": "Tony Brix <Tony@Brix.ninja> (https://Tony.Brix.ninja)",
24
+ "license": "MIT",
25
+ "bugs": {
26
+ "url": "https://github.com/UziTech/marked-katex-extension/issues"
27
+ },
28
+ "homepage": "https://github.com/UziTech/marked-katex-extension#readme",
29
+ "peerDependencies": {
30
+ "marked": "^4.1.0"
31
+ },
32
+ "devDependencies": {
33
+ "@babel/core": "^7.19.0",
34
+ "@babel/preset-env": "^7.19.0",
35
+ "@rollup/plugin-node-resolve": "^14.0.0",
36
+ "@semantic-release/changelog": "^6.0.1",
37
+ "@semantic-release/commit-analyzer": "^9.0.2",
38
+ "@semantic-release/git": "^10.0.1",
39
+ "@semantic-release/github": "^8.0.6",
40
+ "@semantic-release/npm": "^9.0.1",
41
+ "@semantic-release/release-notes-generator": "^10.0.3",
42
+ "babel-jest": "^29.0.2",
43
+ "eslint": "^8.23.0",
44
+ "eslint-config-standard": "^17.0.0",
45
+ "eslint-plugin-import": "^2.26.0",
46
+ "eslint-plugin-n": "^15.2.5",
47
+ "eslint-plugin-promise": "^6.0.1",
48
+ "jest-cli": "^29.0.2",
49
+ "marked": "^4.1.0",
50
+ "rollup": "^2.79.0",
51
+ "semantic-release": "^19.0.5"
52
+ },
53
+ "dependencies": {
54
+ "katex": "^0.16.2"
55
+ }
56
+ }
@@ -0,0 +1,10 @@
1
+ module.exports = {
2
+ branches: 'main',
3
+ plugins: [
4
+ '@semantic-release/commit-analyzer',
5
+ '@semantic-release/release-notes-generator',
6
+ '@semantic-release/npm',
7
+ '@semantic-release/github',
8
+ '@semantic-release/git'
9
+ ]
10
+ };
@@ -0,0 +1,11 @@
1
+ import { nodeResolve } from '@rollup/plugin-node-resolve';
2
+
3
+ export default {
4
+ input: 'src/index.js',
5
+ output: {
6
+ name: 'markedKatex',
7
+ file: 'lib/index.umd.js',
8
+ format: 'umd'
9
+ },
10
+ plugins: [nodeResolve()]
11
+ };
@@ -0,0 +1,105 @@
1
+ // Jest Snapshot v1, https://goo.gl/fbAQLP
2
+
3
+ exports[`marked-katex-extension block katex 1`] = `
4
+ "<p>This is block level katex:</p>
5
+ <p><span class="katex"><span class="katex-mathml"><math xmlns="http://www.w3.org/1998/Math/MathML"><semantics><mrow><mi>c</mi><mo>=</mo><mo>±</mo><msqrt><mrow><msup><mi>a</mi><mn>2</mn></msup><mo>+</mo><msup><mi>b</mi><mn>2</mn></msup></mrow></msqrt></mrow><annotation encoding="application/x-tex">c = \\pm\\sqrt{a^2 + b^2}</annotation></semantics></math></span><span class="katex-html" aria-hidden="true"><span class="base"><span class="strut" style="height:0.4306em;"></span><span class="mord mathnormal">c</span><span class="mspace" style="margin-right:0.2778em;"></span><span class="mrel">=</span><span class="mspace" style="margin-right:0.2778em;"></span></span><span class="base"><span class="strut" style="height:1.04em;vertical-align:-0.1266em;"></span><span class="mord">±</span><span class="mord sqrt"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:0.9134em;"><span class="svg-align" style="top:-3em;"><span class="pstrut" style="height:3em;"></span><span class="mord" style="padding-left:0.833em;"><span class="mord"><span class="mord mathnormal">a</span><span class="msupsub"><span class="vlist-t"><span class="vlist-r"><span class="vlist" style="height:0.7401em;"><span style="top:-2.989em;margin-right:0.05em;"><span class="pstrut" style="height:2.7em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mtight">2</span></span></span></span></span></span></span></span><span class="mspace" style="margin-right:0.2222em;"></span><span class="mbin">+</span><span class="mspace" style="margin-right:0.2222em;"></span><span class="mord"><span class="mord mathnormal">b</span><span class="msupsub"><span class="vlist-t"><span class="vlist-r"><span class="vlist" style="height:0.7401em;"><span style="top:-2.989em;margin-right:0.05em;"><span class="pstrut" style="height:2.7em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mtight">2</span></span></span></span></span></span></span></span></span></span><span style="top:-2.8734em;"><span class="pstrut" style="height:3em;"></span><span class="hide-tail" style="min-width:0.853em;height:1.08em;"><svg xmlns="http://www.w3.org/2000/svg" width='400em' height='1.08em' viewBox='0 0 400000 1080' preserveAspectRatio='xMinYMin slice'><path d='M95,702
6
+ c-2.7,0,-7.17,-2.7,-13.5,-8c-5.8,-5.3,-9.5,-10,-9.5,-14
7
+ c0,-2,0.3,-3.3,1,-4c1.3,-2.7,23.83,-20.7,67.5,-54
8
+ c44.2,-33.3,65.8,-50.3,66.5,-51c1.3,-1.3,3,-2,5,-2c4.7,0,8.7,3.3,12,10
9
+ s173,378,173,378c0.7,0,35.3,-71,104,-213c68.7,-142,137.5,-285,206.5,-429
10
+ c69,-144,104.5,-217.7,106.5,-221
11
+ l0 -0
12
+ c5.3,-9.3,12,-14,20,-14
13
+ H400000v40H845.2724
14
+ s-225.272,467,-225.272,467s-235,486,-235,486c-2.7,4.7,-9,7,-19,7
15
+ c-6,0,-10,-1,-12,-3s-194,-422,-194,-422s-65,47,-65,47z
16
+ M834 80h400000v40h-400000z'/></svg></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height:0.1266em;"><span></span></span></span></span></span></span></span></span></p>"
17
+ `;
18
+
19
+ exports[`marked-katex-extension block katex 1 $ 1`] = `
20
+ "<p>This is block level katex:</p>
21
+ <p>$
22
+ c = \\pm\\sqrt{a^2 + b^2}
23
+ $</p>
24
+ "
25
+ `;
26
+
27
+ exports[`marked-katex-extension block katex more $ 1`] = `
28
+ "<p>This is block level katex:</p>
29
+ <p><span class="katex"><span class="katex-mathml"><math xmlns="http://www.w3.org/1998/Math/MathML"><semantics><mrow><mi>c</mi><mo>=</mo><mo>±</mo><msqrt><mrow><msup><mi>a</mi><mn>2</mn></msup><mo>+</mo><msup><mi>b</mi><mn>2</mn></msup></mrow></msqrt></mrow><annotation encoding="application/x-tex">c = \\pm\\sqrt{a^2 + b^2}</annotation></semantics></math></span><span class="katex-html" aria-hidden="true"><span class="base"><span class="strut" style="height:0.4306em;"></span><span class="mord mathnormal">c</span><span class="mspace" style="margin-right:0.2778em;"></span><span class="mrel">=</span><span class="mspace" style="margin-right:0.2778em;"></span></span><span class="base"><span class="strut" style="height:1.04em;vertical-align:-0.1266em;"></span><span class="mord">±</span><span class="mord sqrt"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:0.9134em;"><span class="svg-align" style="top:-3em;"><span class="pstrut" style="height:3em;"></span><span class="mord" style="padding-left:0.833em;"><span class="mord"><span class="mord mathnormal">a</span><span class="msupsub"><span class="vlist-t"><span class="vlist-r"><span class="vlist" style="height:0.7401em;"><span style="top:-2.989em;margin-right:0.05em;"><span class="pstrut" style="height:2.7em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mtight">2</span></span></span></span></span></span></span></span><span class="mspace" style="margin-right:0.2222em;"></span><span class="mbin">+</span><span class="mspace" style="margin-right:0.2222em;"></span><span class="mord"><span class="mord mathnormal">b</span><span class="msupsub"><span class="vlist-t"><span class="vlist-r"><span class="vlist" style="height:0.7401em;"><span style="top:-2.989em;margin-right:0.05em;"><span class="pstrut" style="height:2.7em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mtight">2</span></span></span></span></span></span></span></span></span></span><span style="top:-2.8734em;"><span class="pstrut" style="height:3em;"></span><span class="hide-tail" style="min-width:0.853em;height:1.08em;"><svg xmlns="http://www.w3.org/2000/svg" width='400em' height='1.08em' viewBox='0 0 400000 1080' preserveAspectRatio='xMinYMin slice'><path d='M95,702
30
+ c-2.7,0,-7.17,-2.7,-13.5,-8c-5.8,-5.3,-9.5,-10,-9.5,-14
31
+ c0,-2,0.3,-3.3,1,-4c1.3,-2.7,23.83,-20.7,67.5,-54
32
+ c44.2,-33.3,65.8,-50.3,66.5,-51c1.3,-1.3,3,-2,5,-2c4.7,0,8.7,3.3,12,10
33
+ s173,378,173,378c0.7,0,35.3,-71,104,-213c68.7,-142,137.5,-285,206.5,-429
34
+ c69,-144,104.5,-217.7,106.5,-221
35
+ l0 -0
36
+ c5.3,-9.3,12,-14,20,-14
37
+ H400000v40H845.2724
38
+ s-225.272,467,-225.272,467s-235,486,-235,486c-2.7,4.7,-9,7,-19,7
39
+ c-6,0,-10,-1,-12,-3s-194,-422,-194,-422s-65,47,-65,47z
40
+ M834 80h400000v40h-400000z'/></svg></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height:0.1266em;"><span></span></span></span></span></span></span></span></span></p>"
41
+ `;
42
+
43
+ exports[`marked-katex-extension inline katex 1`] = `
44
+ "<p>This is inline katex: <span class="katex"><span class="katex-mathml"><math xmlns="http://www.w3.org/1998/Math/MathML"><semantics><mrow><mi>c</mi><mo>=</mo><mo>±</mo><msqrt><mrow><msup><mi>a</mi><mn>2</mn></msup><mo>+</mo><msup><mi>b</mi><mn>2</mn></msup></mrow></msqrt></mrow><annotation encoding="application/x-tex">c = \\pm\\sqrt{a^2 + b^2}</annotation></semantics></math></span><span class="katex-html" aria-hidden="true"><span class="base"><span class="strut" style="height:0.4306em;"></span><span class="mord mathnormal">c</span><span class="mspace" style="margin-right:0.2778em;"></span><span class="mrel">=</span><span class="mspace" style="margin-right:0.2778em;"></span></span><span class="base"><span class="strut" style="height:1.04em;vertical-align:-0.1266em;"></span><span class="mord">±</span><span class="mord sqrt"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:0.9134em;"><span class="svg-align" style="top:-3em;"><span class="pstrut" style="height:3em;"></span><span class="mord" style="padding-left:0.833em;"><span class="mord"><span class="mord mathnormal">a</span><span class="msupsub"><span class="vlist-t"><span class="vlist-r"><span class="vlist" style="height:0.7401em;"><span style="top:-2.989em;margin-right:0.05em;"><span class="pstrut" style="height:2.7em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mtight">2</span></span></span></span></span></span></span></span><span class="mspace" style="margin-right:0.2222em;"></span><span class="mbin">+</span><span class="mspace" style="margin-right:0.2222em;"></span><span class="mord"><span class="mord mathnormal">b</span><span class="msupsub"><span class="vlist-t"><span class="vlist-r"><span class="vlist" style="height:0.7401em;"><span style="top:-2.989em;margin-right:0.05em;"><span class="pstrut" style="height:2.7em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mtight">2</span></span></span></span></span></span></span></span></span></span><span style="top:-2.8734em;"><span class="pstrut" style="height:3em;"></span><span class="hide-tail" style="min-width:0.853em;height:1.08em;"><svg xmlns="http://www.w3.org/2000/svg" width='400em' height='1.08em' viewBox='0 0 400000 1080' preserveAspectRatio='xMinYMin slice'><path d='M95,702
45
+ c-2.7,0,-7.17,-2.7,-13.5,-8c-5.8,-5.3,-9.5,-10,-9.5,-14
46
+ c0,-2,0.3,-3.3,1,-4c1.3,-2.7,23.83,-20.7,67.5,-54
47
+ c44.2,-33.3,65.8,-50.3,66.5,-51c1.3,-1.3,3,-2,5,-2c4.7,0,8.7,3.3,12,10
48
+ s173,378,173,378c0.7,0,35.3,-71,104,-213c68.7,-142,137.5,-285,206.5,-429
49
+ c69,-144,104.5,-217.7,106.5,-221
50
+ l0 -0
51
+ c5.3,-9.3,12,-14,20,-14
52
+ H400000v40H845.2724
53
+ s-225.272,467,-225.272,467s-235,486,-235,486c-2.7,4.7,-9,7,-19,7
54
+ c-6,0,-10,-1,-12,-3s-194,-422,-194,-422s-65,47,-65,47z
55
+ M834 80h400000v40h-400000z'/></svg></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height:0.1266em;"><span></span></span></span></span></span></span></span></span></p>
56
+ "
57
+ `;
58
+
59
+ exports[`marked-katex-extension inline katex 2`] = `
60
+ "<p>This is inline katex: <span class="katex"><span class="katex-mathml"><math xmlns="http://www.w3.org/1998/Math/MathML"><semantics><mrow><mi>c</mi><mo>=</mo><mo>±</mo><msqrt><mrow><msup><mi>a</mi><mn>2</mn></msup><mo>+</mo><msup><mi>b</mi><mn>2</mn></msup></mrow></msqrt></mrow><annotation encoding="application/x-tex">c = \\pm\\sqrt{a^2 + b^2}</annotation></semantics></math></span><span class="katex-html" aria-hidden="true"><span class="base"><span class="strut" style="height:0.4306em;"></span><span class="mord mathnormal">c</span><span class="mspace" style="margin-right:0.2778em;"></span><span class="mrel">=</span><span class="mspace" style="margin-right:0.2778em;"></span></span><span class="base"><span class="strut" style="height:1.04em;vertical-align:-0.1266em;"></span><span class="mord">±</span><span class="mord sqrt"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:0.9134em;"><span class="svg-align" style="top:-3em;"><span class="pstrut" style="height:3em;"></span><span class="mord" style="padding-left:0.833em;"><span class="mord"><span class="mord mathnormal">a</span><span class="msupsub"><span class="vlist-t"><span class="vlist-r"><span class="vlist" style="height:0.7401em;"><span style="top:-2.989em;margin-right:0.05em;"><span class="pstrut" style="height:2.7em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mtight">2</span></span></span></span></span></span></span></span><span class="mspace" style="margin-right:0.2222em;"></span><span class="mbin">+</span><span class="mspace" style="margin-right:0.2222em;"></span><span class="mord"><span class="mord mathnormal">b</span><span class="msupsub"><span class="vlist-t"><span class="vlist-r"><span class="vlist" style="height:0.7401em;"><span style="top:-2.989em;margin-right:0.05em;"><span class="pstrut" style="height:2.7em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mtight">2</span></span></span></span></span></span></span></span></span></span><span style="top:-2.8734em;"><span class="pstrut" style="height:3em;"></span><span class="hide-tail" style="min-width:0.853em;height:1.08em;"><svg xmlns="http://www.w3.org/2000/svg" width='400em' height='1.08em' viewBox='0 0 400000 1080' preserveAspectRatio='xMinYMin slice'><path d='M95,702
61
+ c-2.7,0,-7.17,-2.7,-13.5,-8c-5.8,-5.3,-9.5,-10,-9.5,-14
62
+ c0,-2,0.3,-3.3,1,-4c1.3,-2.7,23.83,-20.7,67.5,-54
63
+ c44.2,-33.3,65.8,-50.3,66.5,-51c1.3,-1.3,3,-2,5,-2c4.7,0,8.7,3.3,12,10
64
+ s173,378,173,378c0.7,0,35.3,-71,104,-213c68.7,-142,137.5,-285,206.5,-429
65
+ c69,-144,104.5,-217.7,106.5,-221
66
+ l0 -0
67
+ c5.3,-9.3,12,-14,20,-14
68
+ H400000v40H845.2724
69
+ s-225.272,467,-225.272,467s-235,486,-235,486c-2.7,4.7,-9,7,-19,7
70
+ c-6,0,-10,-1,-12,-3s-194,-422,-194,-422s-65,47,-65,47z
71
+ M834 80h400000v40h-400000z'/></svg></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height:0.1266em;"><span></span></span></span></span></span></span></span></span></p>
72
+ "
73
+ `;
74
+
75
+ exports[`marked-katex-extension inline katex more $ 1`] = `
76
+ "<p>This is inline katex: <span class="katex"><span class="katex-mathml"><math xmlns="http://www.w3.org/1998/Math/MathML"><semantics><mrow><mi>c</mi><mo>=</mo><mo>±</mo><msqrt><mrow><msup><mi>a</mi><mn>2</mn></msup><mo>+</mo><msup><mi>b</mi><mn>2</mn></msup></mrow></msqrt></mrow><annotation encoding="application/x-tex">c = \\pm\\sqrt{a^2 + b^2}</annotation></semantics></math></span><span class="katex-html" aria-hidden="true"><span class="base"><span class="strut" style="height:0.4306em;"></span><span class="mord mathnormal">c</span><span class="mspace" style="margin-right:0.2778em;"></span><span class="mrel">=</span><span class="mspace" style="margin-right:0.2778em;"></span></span><span class="base"><span class="strut" style="height:1.04em;vertical-align:-0.1266em;"></span><span class="mord">±</span><span class="mord sqrt"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:0.9134em;"><span class="svg-align" style="top:-3em;"><span class="pstrut" style="height:3em;"></span><span class="mord" style="padding-left:0.833em;"><span class="mord"><span class="mord mathnormal">a</span><span class="msupsub"><span class="vlist-t"><span class="vlist-r"><span class="vlist" style="height:0.7401em;"><span style="top:-2.989em;margin-right:0.05em;"><span class="pstrut" style="height:2.7em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mtight">2</span></span></span></span></span></span></span></span><span class="mspace" style="margin-right:0.2222em;"></span><span class="mbin">+</span><span class="mspace" style="margin-right:0.2222em;"></span><span class="mord"><span class="mord mathnormal">b</span><span class="msupsub"><span class="vlist-t"><span class="vlist-r"><span class="vlist" style="height:0.7401em;"><span style="top:-2.989em;margin-right:0.05em;"><span class="pstrut" style="height:2.7em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mtight">2</span></span></span></span></span></span></span></span></span></span><span style="top:-2.8734em;"><span class="pstrut" style="height:3em;"></span><span class="hide-tail" style="min-width:0.853em;height:1.08em;"><svg xmlns="http://www.w3.org/2000/svg" width='400em' height='1.08em' viewBox='0 0 400000 1080' preserveAspectRatio='xMinYMin slice'><path d='M95,702
77
+ c-2.7,0,-7.17,-2.7,-13.5,-8c-5.8,-5.3,-9.5,-10,-9.5,-14
78
+ c0,-2,0.3,-3.3,1,-4c1.3,-2.7,23.83,-20.7,67.5,-54
79
+ c44.2,-33.3,65.8,-50.3,66.5,-51c1.3,-1.3,3,-2,5,-2c4.7,0,8.7,3.3,12,10
80
+ s173,378,173,378c0.7,0,35.3,-71,104,-213c68.7,-142,137.5,-285,206.5,-429
81
+ c69,-144,104.5,-217.7,106.5,-221
82
+ l0 -0
83
+ c5.3,-9.3,12,-14,20,-14
84
+ H400000v40H845.2724
85
+ s-225.272,467,-225.272,467s-235,486,-235,486c-2.7,4.7,-9,7,-19,7
86
+ c-6,0,-10,-1,-12,-3s-194,-422,-194,-422s-65,47,-65,47z
87
+ M834 80h400000v40h-400000z'/></svg></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height:0.1266em;"><span></span></span></span></span></span></span></span></span></p>
88
+ "
89
+ `;
90
+
91
+ exports[`marked-katex-extension readme example 1`] = `
92
+ "<p>katex: <span class="katex"><span class="katex-mathml"><math xmlns="http://www.w3.org/1998/Math/MathML"><semantics><mrow><mi>c</mi><mo>=</mo><mo>±</mo><msqrt><mrow><msup><mi>a</mi><mn>2</mn></msup><mo>+</mo><msup><mi>b</mi><mn>2</mn></msup></mrow></msqrt></mrow><annotation encoding="application/x-tex">c = \\pm\\sqrt{a^2 + b^2}</annotation></semantics></math></span><span class="katex-html" aria-hidden="true"><span class="base"><span class="strut" style="height:0.4306em;"></span><span class="mord mathnormal">c</span><span class="mspace" style="margin-right:0.2778em;"></span><span class="mrel">=</span><span class="mspace" style="margin-right:0.2778em;"></span></span><span class="base"><span class="strut" style="height:1.04em;vertical-align:-0.1266em;"></span><span class="mord">±</span><span class="mord sqrt"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:0.9134em;"><span class="svg-align" style="top:-3em;"><span class="pstrut" style="height:3em;"></span><span class="mord" style="padding-left:0.833em;"><span class="mord"><span class="mord mathnormal">a</span><span class="msupsub"><span class="vlist-t"><span class="vlist-r"><span class="vlist" style="height:0.7401em;"><span style="top:-2.989em;margin-right:0.05em;"><span class="pstrut" style="height:2.7em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mtight">2</span></span></span></span></span></span></span></span><span class="mspace" style="margin-right:0.2222em;"></span><span class="mbin">+</span><span class="mspace" style="margin-right:0.2222em;"></span><span class="mord"><span class="mord mathnormal">b</span><span class="msupsub"><span class="vlist-t"><span class="vlist-r"><span class="vlist" style="height:0.7401em;"><span style="top:-2.989em;margin-right:0.05em;"><span class="pstrut" style="height:2.7em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mtight">2</span></span></span></span></span></span></span></span></span></span><span style="top:-2.8734em;"><span class="pstrut" style="height:3em;"></span><span class="hide-tail" style="min-width:0.853em;height:1.08em;"><svg xmlns="http://www.w3.org/2000/svg" width='400em' height='1.08em' viewBox='0 0 400000 1080' preserveAspectRatio='xMinYMin slice'><path d='M95,702
93
+ c-2.7,0,-7.17,-2.7,-13.5,-8c-5.8,-5.3,-9.5,-10,-9.5,-14
94
+ c0,-2,0.3,-3.3,1,-4c1.3,-2.7,23.83,-20.7,67.5,-54
95
+ c44.2,-33.3,65.8,-50.3,66.5,-51c1.3,-1.3,3,-2,5,-2c4.7,0,8.7,3.3,12,10
96
+ s173,378,173,378c0.7,0,35.3,-71,104,-213c68.7,-142,137.5,-285,206.5,-429
97
+ c69,-144,104.5,-217.7,106.5,-221
98
+ l0 -0
99
+ c5.3,-9.3,12,-14,20,-14
100
+ H400000v40H845.2724
101
+ s-225.272,467,-225.272,467s-235,486,-235,486c-2.7,4.7,-9,7,-19,7
102
+ c-6,0,-10,-1,-12,-3s-194,-422,-194,-422s-65,47,-65,47z
103
+ M834 80h400000v40h-400000z'/></svg></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height:0.1266em;"><span></span></span></span></span></span></span></span></span></p>
104
+ "
105
+ `;
@@ -0,0 +1,55 @@
1
+ import { marked } from 'marked';
2
+ import markedKatex from '../src/index.js';
3
+
4
+ describe('marked-katex-extension', () => {
5
+ beforeEach(() => {
6
+ marked.setOptions(marked.getDefaults());
7
+ });
8
+
9
+ const snapshots = {
10
+ 'readme example': 'katex: $c = \\pm\\sqrt{a^2 + b^2}$',
11
+ 'inline katex': `
12
+ This is inline katex: $c = \\pm\\sqrt{a^2 + b^2}$
13
+ `,
14
+ 'block katex': `
15
+ This is block level katex:
16
+
17
+ $$
18
+ c = \\pm\\sqrt{a^2 + b^2}
19
+ $$
20
+ `,
21
+ 'inline katex more $': `
22
+ This is inline katex: $$c = \\pm\\sqrt{a^2 + b^2}$$
23
+ `,
24
+ 'block katex more $': `
25
+ This is block level katex:
26
+
27
+ $$$
28
+ c = \\pm\\sqrt{a^2 + b^2}
29
+ $$$
30
+ `,
31
+ 'block katex 1 $': `
32
+ This is block level katex:
33
+
34
+ $
35
+ c = \\pm\\sqrt{a^2 + b^2}
36
+ $
37
+ `
38
+ };
39
+
40
+ for (const name in snapshots) {
41
+ test(name, () => {
42
+ marked.use(markedKatex());
43
+ const md = snapshots[name];
44
+ expect(marked(md)).toMatchSnapshot();
45
+ });
46
+ }
47
+
48
+ test('inline katex', () => {
49
+ marked.use(markedKatex());
50
+ const md = `
51
+ This is inline katex: $c = \\pm\\sqrt{a^2 + b^2}$
52
+ `;
53
+ expect(marked(md)).toMatchSnapshot();
54
+ });
55
+ });
package/src/index.js ADDED
@@ -0,0 +1,52 @@
1
+ import katex from 'katex';
2
+
3
+ export default function(options = {}) {
4
+ return {
5
+ extensions: [
6
+ inlineKatex(options),
7
+ blockKatex(options)
8
+ ]
9
+ };
10
+ }
11
+
12
+ function inlineKatex(options) {
13
+ return {
14
+ name: 'inlineKatex',
15
+ level: 'inline',
16
+ start(src) { return src.indexOf('$'); },
17
+ tokenizer(src, tokens) {
18
+ const match = src.match(/^\$+([^$\n]+?)\$+/);
19
+ if (match) {
20
+ return {
21
+ type: 'inlineKatex',
22
+ raw: match[0],
23
+ text: match[1].trim()
24
+ };
25
+ }
26
+ },
27
+ renderer(token) {
28
+ return katex.renderToString(token.text, options);
29
+ }
30
+ };
31
+ }
32
+
33
+ function blockKatex(options) {
34
+ return {
35
+ name: 'blockKatex',
36
+ level: 'block',
37
+ start(src) { return src.indexOf('\n$$'); },
38
+ tokenizer(src, tokens) {
39
+ const match = src.match(/^\$\$+\n([^$]+?)\n\$\$+\n/);
40
+ if (match) {
41
+ return {
42
+ type: 'blockKatex',
43
+ raw: match[0],
44
+ text: match[1].trim()
45
+ };
46
+ }
47
+ },
48
+ renderer(token) {
49
+ return `<p>${katex.renderToString(token.text, options)}</p>`;
50
+ }
51
+ };
52
+ }