markmap-lib 0.16.0 → 0.16.3-alpha.2
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/dist/browser/index.iife.js +4465 -3148
- package/dist/browser/index.mjs +66 -80
- package/dist/index.js +18 -17
- package/dist/index.mjs +19 -18
- package/dist/index.no-plugins.js +17 -17
- package/dist/index.no-plugins.mjs +18 -18
- package/dist/markdown-it.d.ts +2 -0
- package/dist/plugins.js +33 -49
- package/dist/plugins.mjs +33 -49
- package/dist/transform.d.ts +2 -2
- package/dist/types.d.ts +6 -11
- package/package.json +13 -8
package/dist/plugins.mjs
CHANGED
|
@@ -1,14 +1,13 @@
|
|
|
1
1
|
import { Hook, buildJSItem, buildCSSItem, noop, wrapFunction } from "markmap-common";
|
|
2
2
|
import yaml from "js-yaml";
|
|
3
3
|
import hljs from "highlight.js";
|
|
4
|
-
import
|
|
4
|
+
import katexPlugin from "@iktakahiro/markdown-it-katex";
|
|
5
5
|
function createTransformHooks(transformer) {
|
|
6
6
|
return {
|
|
7
7
|
transformer,
|
|
8
8
|
parser: new Hook(),
|
|
9
9
|
beforeParse: new Hook(),
|
|
10
10
|
afterParse: new Hook(),
|
|
11
|
-
htmltag: new Hook(),
|
|
12
11
|
retransform: new Hook()
|
|
13
12
|
};
|
|
14
13
|
}
|
|
@@ -26,27 +25,22 @@ const plugin$3 = definePlugin({
|
|
|
26
25
|
name: name$5,
|
|
27
26
|
transform(transformHooks) {
|
|
28
27
|
transformHooks.parser.tap((md) => {
|
|
29
|
-
md.core.ruler.before(
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
const
|
|
35
|
-
if (
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
/^\[(.)\] /,
|
|
41
|
-
(m, g) => images[g] ? `${images[g]} ` : m
|
|
42
|
-
);
|
|
43
|
-
}
|
|
28
|
+
md.core.ruler.before("inline", "checkbox", (state) => {
|
|
29
|
+
for (let i = 2; i < state.tokens.length; i += 1) {
|
|
30
|
+
const token = state.tokens[i];
|
|
31
|
+
if (token.type === "inline" && token.content) {
|
|
32
|
+
const prevType = state.tokens[i - 1].type;
|
|
33
|
+
const prevPrevType = state.tokens[i - 2].type;
|
|
34
|
+
if (prevType === "heading_open" || prevType === "paragraph_open" && prevPrevType === "list_item_open") {
|
|
35
|
+
token.content = token.content.replace(
|
|
36
|
+
/^\[(.)\] /,
|
|
37
|
+
(m, g) => images[g] ? `${images[g]} ` : m
|
|
38
|
+
);
|
|
44
39
|
}
|
|
45
40
|
}
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
);
|
|
41
|
+
}
|
|
42
|
+
return false;
|
|
43
|
+
});
|
|
50
44
|
});
|
|
51
45
|
return {};
|
|
52
46
|
}
|
|
@@ -207,14 +201,16 @@ const plugin$1 = definePlugin({
|
|
|
207
201
|
var _a, _b;
|
|
208
202
|
let enableFeature = noop;
|
|
209
203
|
transformHooks.parser.tap((md) => {
|
|
210
|
-
md.use(
|
|
211
|
-
|
|
212
|
-
md.renderer.rules
|
|
213
|
-
(
|
|
214
|
-
|
|
215
|
-
|
|
204
|
+
md.use(katexPlugin);
|
|
205
|
+
["math_block", "math_inline"].forEach((key) => {
|
|
206
|
+
const fn = md.renderer.rules[key];
|
|
207
|
+
if (fn) {
|
|
208
|
+
md.renderer.rules[key] = wrapFunction(fn, (render, ...args) => {
|
|
209
|
+
enableFeature();
|
|
210
|
+
return render(...args);
|
|
211
|
+
});
|
|
216
212
|
}
|
|
217
|
-
);
|
|
213
|
+
});
|
|
218
214
|
});
|
|
219
215
|
transformHooks.beforeParse.tap((_, context) => {
|
|
220
216
|
enableFeature = () => {
|
|
@@ -259,32 +255,20 @@ const plugin = definePlugin({
|
|
|
259
255
|
name,
|
|
260
256
|
transform(transformHooks) {
|
|
261
257
|
transformHooks.parser.tap((md) => {
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
}
|
|
258
|
+
md.renderer.renderAttrs = wrapFunction(
|
|
259
|
+
md.renderer.renderAttrs,
|
|
260
|
+
(renderAttrs, token) => {
|
|
261
|
+
let attrs = renderAttrs(token);
|
|
262
|
+
if (token.block && token.map) {
|
|
263
|
+
attrs += ` data-lines=${token.map.join(",")}`;
|
|
264
|
+
}
|
|
265
|
+
return attrs;
|
|
269
266
|
}
|
|
270
|
-
|
|
267
|
+
);
|
|
271
268
|
});
|
|
272
269
|
return {};
|
|
273
270
|
}
|
|
274
271
|
});
|
|
275
|
-
function patchRule(rule, _key) {
|
|
276
|
-
return wrapFunction(rule, (render, tokens, idx, ...rest) => {
|
|
277
|
-
let html = render(tokens, idx, ...rest);
|
|
278
|
-
const { lines } = tokens[idx];
|
|
279
|
-
if (lines) {
|
|
280
|
-
html = html.replace(
|
|
281
|
-
/^<[\w-]+/,
|
|
282
|
-
(m) => `${m} data-lines="${lines.join(",")}"`
|
|
283
|
-
);
|
|
284
|
-
}
|
|
285
|
-
return html;
|
|
286
|
-
});
|
|
287
|
-
}
|
|
288
272
|
const pluginSourceLines = plugin;
|
|
289
273
|
const plugins = [
|
|
290
274
|
pluginFrontmatter,
|
package/dist/transform.d.ts
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
|
+
import type MarkdownIt from 'markdown-it';
|
|
1
2
|
import { UrlBuilder } from 'markmap-common';
|
|
2
3
|
import { IHtmlParserOptions } from 'markmap-html-parser';
|
|
3
|
-
import { Remarkable } from 'remarkable';
|
|
4
4
|
import { IAssets, IFeatures, ITransformHooks, ITransformPlugin, ITransformResult, ITransformer } from './types';
|
|
5
5
|
export declare const builtInPlugins: ITransformPlugin[];
|
|
6
6
|
export declare class Transformer implements ITransformer {
|
|
7
7
|
hooks: ITransformHooks;
|
|
8
|
-
md:
|
|
8
|
+
md: MarkdownIt;
|
|
9
9
|
assetsMap: Record<string, IAssets>;
|
|
10
10
|
urlBuilder: UrlBuilder;
|
|
11
11
|
plugins: ITransformPlugin[];
|
package/dist/types.d.ts
CHANGED
|
@@ -1,26 +1,21 @@
|
|
|
1
|
-
import
|
|
1
|
+
import type MarkdownIt from 'markdown-it';
|
|
2
|
+
import { CSSItem, Hook, IPureNode, JSItem, UrlBuilder } from 'markmap-common';
|
|
2
3
|
import { IHtmlParserOptions } from 'markmap-html-parser';
|
|
3
4
|
import { IMarkmapJSONOptions as IMarkmapJSONOptionsForView } from 'markmap-view';
|
|
4
|
-
import type { Remarkable } from 'remarkable';
|
|
5
|
-
type Htmltag = Remarkable.Rule<Remarkable.HtmlTagToken, string>;
|
|
6
5
|
export interface ITransformHooks {
|
|
7
6
|
transformer: ITransformer;
|
|
8
7
|
/**
|
|
9
8
|
* Tapped once when the parser is created.
|
|
10
9
|
*/
|
|
11
|
-
parser: Hook<[md:
|
|
10
|
+
parser: Hook<[md: MarkdownIt]>;
|
|
12
11
|
/**
|
|
13
12
|
* Tapped every time before Markdown content is parsed.
|
|
14
13
|
*/
|
|
15
|
-
beforeParse: Hook<[md:
|
|
14
|
+
beforeParse: Hook<[md: MarkdownIt, context: ITransformContext]>;
|
|
16
15
|
/**
|
|
17
16
|
* Tapped every time after Markdown content is parsed.
|
|
18
17
|
*/
|
|
19
|
-
afterParse: Hook<[md:
|
|
20
|
-
/**
|
|
21
|
-
* Tapped when Remarkable renders an HTML tag in Markdown.
|
|
22
|
-
*/
|
|
23
|
-
htmltag: Hook<[ctx: IWrapContext<Parameters<Htmltag>, ReturnType<Htmltag>>]>;
|
|
18
|
+
afterParse: Hook<[md: MarkdownIt, context: ITransformContext]>;
|
|
24
19
|
/**
|
|
25
20
|
* Used in autoloader to force rerender when resource is loaded.
|
|
26
21
|
*/
|
|
@@ -54,6 +49,7 @@ export interface ITransformContext {
|
|
|
54
49
|
features: IFeatures;
|
|
55
50
|
content: string;
|
|
56
51
|
frontmatter?: {
|
|
52
|
+
title?: string;
|
|
57
53
|
markmap?: IMarkmapJSONOptions;
|
|
58
54
|
};
|
|
59
55
|
/** The index of line where content without frontmatter starts */
|
|
@@ -73,4 +69,3 @@ export interface ITransformPlugin {
|
|
|
73
69
|
*/
|
|
74
70
|
transform: (transformHooks: ITransformHooks) => IAssets;
|
|
75
71
|
}
|
|
76
|
-
export {};
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "markmap-lib",
|
|
3
|
-
"version": "0.16.
|
|
3
|
+
"version": "0.16.3-alpha.2+0f4c3f8",
|
|
4
4
|
"description": "Visualize your Markdown as mindmaps with Markmap",
|
|
5
5
|
"author": "Gerald <gera2ld@live.com>",
|
|
6
6
|
"license": "MIT",
|
|
@@ -58,20 +58,25 @@
|
|
|
58
58
|
},
|
|
59
59
|
"devDependencies": {
|
|
60
60
|
"@highlightjs/cdn-assets": "^11.8.0",
|
|
61
|
-
"@types/
|
|
61
|
+
"@types/katex": "^0.16.7",
|
|
62
|
+
"@types/markdown-it": "^14.0.0",
|
|
62
63
|
"markmap-common": "0.16.0",
|
|
63
64
|
"webfontloader": "^1.6.28"
|
|
64
65
|
},
|
|
65
66
|
"dependencies": {
|
|
66
67
|
"@babel/runtime": "^7.22.6",
|
|
68
|
+
"@iktakahiro/markdown-it-katex": "^4.0.1",
|
|
67
69
|
"highlight.js": "^11.8.0",
|
|
68
70
|
"js-yaml": "^4.1.0",
|
|
69
71
|
"katex": "^0.16.8",
|
|
70
|
-
"
|
|
71
|
-
"
|
|
72
|
-
"
|
|
73
|
-
"
|
|
74
|
-
"
|
|
72
|
+
"markdown-it": "^14.1.0",
|
|
73
|
+
"markdown-it-ins": "^4.0.0",
|
|
74
|
+
"markdown-it-mark": "^4.0.0",
|
|
75
|
+
"markdown-it-sub": "^2.0.0",
|
|
76
|
+
"markdown-it-sup": "^2.0.0",
|
|
77
|
+
"markmap-html-parser": "0.16.1",
|
|
78
|
+
"markmap-view": "0.16.3-alpha.2+0f4c3f8",
|
|
79
|
+
"prismjs": "^1.29.0"
|
|
75
80
|
},
|
|
76
81
|
"peerDependencies": {
|
|
77
82
|
"markmap-common": "*"
|
|
@@ -90,5 +95,5 @@
|
|
|
90
95
|
"^(.*\\.svg)\\?raw$": "$1"
|
|
91
96
|
}
|
|
92
97
|
},
|
|
93
|
-
"gitHead": "
|
|
98
|
+
"gitHead": "0f4c3f84ff21f0957ec3dbf338ed7a453f050638"
|
|
94
99
|
}
|