markmap-lib 0.14.5-alpha.21 → 0.14.5-alpha.24

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/index.js CHANGED
@@ -1,89 +1,53 @@
1
- /*! markmap-lib v0.14.5-alpha.21+fb81f2c | MIT License */
1
+ /*! markmap-lib v0.14.5-alpha.24+08dd40c | MIT License */
2
2
  'use strict';
3
3
 
4
4
  var _extends = require('@babel/runtime/helpers/extends');
5
- var markmapCommon = require('markmap-common');
6
5
  var remarkable = require('remarkable');
6
+ var markmapCommon = require('markmap-common');
7
7
  var remarkableKatex = require('remarkable-katex');
8
8
  var yaml = require('js-yaml');
9
- var hljs$1 = require('highlight.js');
9
+ var hljs = require('highlight.js');
10
10
 
11
11
  const template = "<!DOCTYPE html>\n<html>\n<head>\n<meta charset=\"UTF-8\">\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\">\n<meta http-equiv=\"X-UA-Compatible\" content=\"ie=edge\">\n<title>Markmap</title>\n<style>\n* {\n margin: 0;\n padding: 0;\n}\n#mindmap {\n display: block;\n width: 100vw;\n height: 100vh;\n}\n</style>\n<!--CSS-->\n</head>\n<body>\n<svg id=\"mindmap\"></svg>\n<!--JS-->\n</body>\n</html>\n" ;
12
- const baseJsPaths = [`d3@${"7.8.5"}/dist/d3.min.js`, `markmap-view@${"0.14.5-alpha.21"}/dist/browser/index.js`];
13
- function fillTemplate(root, assets, extra) {
14
- var _extra, _extra$baseJs;
15
- extra = _extends({}, extra);
16
- (_extra$baseJs = (_extra = extra).baseJs) != null ? _extra$baseJs : _extra.baseJs = baseJsPaths.map(path => markmapCommon.buildJSItem(path));
17
- const {
18
- scripts,
19
- styles
20
- } = assets;
21
- const cssList = [...(styles ? markmapCommon.persistCSS(styles) : [])];
22
- const context = {
23
- getMarkmap: () => window.markmap,
24
- getOptions: extra.getOptions,
25
- jsonOptions: extra.jsonOptions,
26
- root
27
- };
28
- const jsList = [...markmapCommon.persistJS([...extra.baseJs, ...(scripts || []), {
12
+ const baseJsPaths = [`d3@${"7.8.5"}/dist/d3.min.js`, `markmap-view@${"0.14.5-alpha.24"}/dist/browser/index.js`];
13
+
14
+ const name$3 = 'katex';
15
+ const preloadScripts = [`katex@${"0.16.8"}/dist/katex.min.js`].map(path => markmapCommon.buildJSItem(path));
16
+ const webfontloader = markmapCommon.buildJSItem(`webfontloader@${"1.6.28"}/webfontloader.js`);
17
+ webfontloader.data.defer = true;
18
+ const styles$1 = [`katex@${"0.16.8"}/dist/katex.min.css`].map(path => markmapCommon.buildCSSItem(path));
19
+ const config$1 = {
20
+ versions: {
21
+ katex: "0.16.8" ,
22
+ webfontloader: "1.6.28"
23
+ },
24
+ preloadScripts,
25
+ scripts: [{
29
26
  type: 'iife',
30
27
  data: {
31
- fn: (getMarkmap, getOptions, root, jsonOptions) => {
32
- const markmap = getMarkmap();
33
- window.mm = markmap.Markmap.create('svg#mindmap', (getOptions || markmap.deriveOptions)(jsonOptions), root);
28
+ fn: getMarkmap => {
29
+ window.WebFontConfig = {
30
+ custom: {
31
+ families: ['KaTeX_AMS', 'KaTeX_Caligraphic:n4,n7', 'KaTeX_Fraktur:n4,n7', 'KaTeX_Main:n4,n7,i4,i7', 'KaTeX_Math:i4,i7', 'KaTeX_Script', 'KaTeX_SansSerif:n4,n7,i4', 'KaTeX_Size1', 'KaTeX_Size2', 'KaTeX_Size3', 'KaTeX_Size4', 'KaTeX_Typewriter']
32
+ },
33
+ active: () => {
34
+ getMarkmap().refreshHook.call();
35
+ }
36
+ };
34
37
  },
35
- getParams: ({
36
- getMarkmap,
37
- getOptions,
38
- root,
39
- jsonOptions
40
- }) => {
41
- return [getMarkmap, getOptions, root, jsonOptions];
38
+ getParams({
39
+ getMarkmap
40
+ }) {
41
+ return [getMarkmap];
42
42
  }
43
43
  }
44
- }], context)];
45
- const html = template.replace('<!--CSS-->', () => cssList.join('')).replace('<!--JS-->', () => jsList.join(''));
46
- return html;
47
- }
48
-
49
- const name$3 = 'katex';
50
- function getConfig$1() {
51
- const preloadScripts = [`katex@${"0.16.8"}/dist/katex.min.js`].map(path => markmapCommon.buildJSItem(path));
52
- const webfontloader = markmapCommon.buildJSItem(`webfontloader@${"1.6.28"}/webfontloader.js`);
53
- webfontloader.data.defer = true;
54
- const styles = [`katex@${"0.16.8"}/dist/katex.min.css`].map(path => markmapCommon.buildCSSItem(path));
55
- return {
56
- versions: {
57
- katex: "0.16.8" ,
58
- webfontloader: "1.6.28"
59
- },
60
- preloadScripts,
61
- scripts: [{
62
- type: 'iife',
63
- data: {
64
- fn: getMarkmap => {
65
- window.WebFontConfig = {
66
- custom: {
67
- families: ['KaTeX_AMS', 'KaTeX_Caligraphic:n4,n7', 'KaTeX_Fraktur:n4,n7', 'KaTeX_Main:n4,n7,i4,i7', 'KaTeX_Math:i4,i7', 'KaTeX_Script', 'KaTeX_SansSerif:n4,n7,i4', 'KaTeX_Size1', 'KaTeX_Size2', 'KaTeX_Size3', 'KaTeX_Size4', 'KaTeX_Typewriter']
68
- },
69
- active: () => {
70
- getMarkmap().refreshHook.call();
71
- }
72
- };
73
- },
74
- getParams({
75
- getMarkmap
76
- }) {
77
- return [getMarkmap];
78
- }
79
- }
80
- }, webfontloader],
81
- styles
82
- };
83
- }
44
+ }, webfontloader],
45
+ styles: styles$1
46
+ };
84
47
 
85
- function createTransformHooks() {
48
+ function createTransformHooks(transformer) {
86
49
  return {
50
+ transformer,
87
51
  parser: new markmapCommon.Hook(),
88
52
  beforeParse: new markmapCommon.Hook(),
89
53
  afterParse: new markmapCommon.Hook(),
@@ -99,31 +63,29 @@ function definePlugin(plugin) {
99
63
  return plugin;
100
64
  }
101
65
 
102
- var katex = definePlugin(() => {
103
- const plugin = {
104
- name: name$3,
105
- config: getConfig$1(),
106
- transform(transformHooks) {
107
- let enableFeature = markmapCommon.noop;
108
- transformHooks.parser.tap(md => {
109
- md.use(remarkableKatex);
110
- md.renderer.rules.katex = markmapCommon.wrapFunction(md.renderer.rules.katex, (render, ...args) => {
111
- enableFeature();
112
- return render(...args);
113
- });
114
- });
115
- transformHooks.beforeParse.tap((_, context) => {
116
- enableFeature = () => {
117
- context.features[name$3] = true;
118
- };
66
+ const plugin$1 = definePlugin({
67
+ name: name$3,
68
+ config: config$1,
69
+ transform(transformHooks) {
70
+ var _plugin$config, _plugin$config2;
71
+ let enableFeature = markmapCommon.noop;
72
+ transformHooks.parser.tap(md => {
73
+ md.use(remarkableKatex);
74
+ md.renderer.rules.katex = markmapCommon.wrapFunction(md.renderer.rules.katex, (render, ...args) => {
75
+ enableFeature();
76
+ return render(...args);
119
77
  });
120
- return {
121
- styles: plugin.config.styles,
122
- scripts: plugin.config.scripts
78
+ });
79
+ transformHooks.beforeParse.tap((_, context) => {
80
+ enableFeature = () => {
81
+ context.features[name$3] = true;
123
82
  };
124
- }
125
- };
126
- return plugin;
83
+ });
84
+ return {
85
+ styles: (_plugin$config = plugin$1.config) == null ? void 0 : _plugin$config.styles,
86
+ scripts: (_plugin$config2 = plugin$1.config) == null ? void 0 : _plugin$config2.scripts
87
+ };
88
+ }
127
89
  });
128
90
 
129
91
  const name$2 = 'frontmatter';
@@ -191,7 +153,7 @@ var npmUrl = definePlugin({
191
153
  if (value) {
192
154
  markmap[key] = value.map(path => {
193
155
  if (path.startsWith('npm:')) {
194
- return markmapCommon.getFullUrl(path.slice(4));
156
+ return transformHooks.transformer.urlBuilder.getFullUrl(path.slice(4));
195
157
  }
196
158
  return path;
197
159
  });
@@ -204,43 +166,60 @@ var npmUrl = definePlugin({
204
166
  });
205
167
 
206
168
  const name = 'hljs';
207
- function getConfig() {
208
- const styles = [`highlight.js@${"11.8.0"}/styles/default.css`].map(path => markmapCommon.buildCSSItem(path));
209
- return {
210
- versions: {
211
- hljs: "11.8.0"
212
- },
213
- styles
214
- };
215
- }
216
- var hljs = definePlugin(() => {
217
- const plugin = {
218
- name,
219
- config: getConfig(),
220
- transform(transformHooks) {
221
- let enableFeature = markmapCommon.noop;
222
- transformHooks.parser.tap(md => {
223
- md.set({
224
- highlight: (str, language) => {
225
- enableFeature();
226
- return hljs$1.highlightAuto(str, language ? [language] : undefined).value;
227
- }
228
- });
229
- });
230
- transformHooks.beforeParse.tap((_, context) => {
231
- enableFeature = () => {
232
- context.features[name] = true;
233
- };
169
+ const styles = [`highlight.js@${"11.8.0"}/styles/default.css`].map(path => markmapCommon.buildCSSItem(path));
170
+ const config = {
171
+ versions: {
172
+ hljs: "11.8.0"
173
+ },
174
+ styles
175
+ };
176
+ const plugin = definePlugin({
177
+ name,
178
+ config,
179
+ transform(transformHooks) {
180
+ var _plugin$config;
181
+ let enableFeature = markmapCommon.noop;
182
+ transformHooks.parser.tap(md => {
183
+ md.set({
184
+ highlight: (str, language) => {
185
+ enableFeature();
186
+ return hljs.highlightAuto(str, language ? [language] : undefined).value;
187
+ }
234
188
  });
235
- return {
236
- styles: plugin.config.styles
189
+ });
190
+ transformHooks.beforeParse.tap((_, context) => {
191
+ enableFeature = () => {
192
+ context.features[name] = true;
237
193
  };
238
- }
239
- };
240
- return plugin;
194
+ });
195
+ return {
196
+ styles: (_plugin$config = plugin.config) == null ? void 0 : _plugin$config.styles
197
+ };
198
+ }
241
199
  });
242
200
 
243
- const plugins = [frontmatter, katex, hljs, npmUrl];
201
+ const plugins = [frontmatter, plugin$1, plugin, npmUrl];
202
+
203
+ function patchJSItem(transformer, item) {
204
+ if (item.type === 'script' && item.data.src) {
205
+ return _extends({}, item, {
206
+ data: _extends({}, item.data, {
207
+ src: transformer.urlBuilder.getFullUrl(item.data.src)
208
+ })
209
+ });
210
+ }
211
+ return item;
212
+ }
213
+ function patchCSSItem(transformer, item) {
214
+ if (item.type === 'stylesheet' && item.data.href) {
215
+ return _extends({}, item, {
216
+ data: _extends({}, item.data, {
217
+ href: transformer.urlBuilder.getFullUrl(item.data.href)
218
+ })
219
+ });
220
+ }
221
+ return item;
222
+ }
244
223
 
245
224
  function cleanNode(node) {
246
225
  if (node.type === 'heading') {
@@ -290,7 +269,8 @@ function resetDepth(node, depth = 0) {
290
269
  class Transformer {
291
270
  constructor(plugins$1 = plugins) {
292
271
  this.assetsMap = {};
293
- this.hooks = createTransformHooks();
272
+ this.urlBuilder = new markmapCommon.UrlBuilder();
273
+ this.hooks = createTransformHooks(this);
294
274
  this.plugins = plugins$1.map(plugin => typeof plugin === 'function' ? plugin() : plugin);
295
275
  const assetsMap = {};
296
276
  for (const {
@@ -431,8 +411,8 @@ class Transformer {
431
411
  }
432
412
  }
433
413
  return {
434
- styles,
435
- scripts
414
+ styles: styles.map(item => patchCSSItem(this, item)),
415
+ scripts: scripts.map(item => patchJSItem(this, item))
436
416
  };
437
417
  }
438
418
 
@@ -443,15 +423,50 @@ class Transformer {
443
423
  const keys = this.plugins.map(plugin => plugin.name).filter(name => features[name]);
444
424
  return this.getAssets(keys);
445
425
  }
426
+ fillTemplate(root, assets, extra) {
427
+ var _extra, _extra$baseJs;
428
+ extra = _extends({}, extra);
429
+ (_extra$baseJs = (_extra = extra).baseJs) != null ? _extra$baseJs : _extra.baseJs = baseJsPaths.map(path => this.urlBuilder.getFullUrl(path)).map(path => markmapCommon.buildJSItem(path));
430
+ const {
431
+ scripts,
432
+ styles
433
+ } = assets;
434
+ const cssList = [...(styles ? markmapCommon.persistCSS(styles) : [])];
435
+ const context = {
436
+ getMarkmap: () => window.markmap,
437
+ getOptions: extra.getOptions,
438
+ jsonOptions: extra.jsonOptions,
439
+ root
440
+ };
441
+ const jsList = [...markmapCommon.persistJS([...extra.baseJs, ...(scripts || []), {
442
+ type: 'iife',
443
+ data: {
444
+ fn: (getMarkmap, getOptions, root, jsonOptions) => {
445
+ const markmap = getMarkmap();
446
+ window.mm = markmap.Markmap.create('svg#mindmap', (getOptions || markmap.deriveOptions)(jsonOptions), root);
447
+ },
448
+ getParams: ({
449
+ getMarkmap,
450
+ getOptions,
451
+ root,
452
+ jsonOptions
453
+ }) => {
454
+ return [getMarkmap, getOptions, root, jsonOptions];
455
+ }
456
+ }
457
+ }], context)];
458
+ const html = template.replace('<!--CSS-->', () => cssList.join('')).replace('<!--JS-->', () => jsList.join(''));
459
+ return html;
460
+ }
446
461
  }
447
462
 
448
463
  const transformerVersions = {
449
- 'markmap-lib': '0.14.5-alpha.21+fb81f2c',
464
+ 'markmap-lib': '0.14.5-alpha.24+08dd40c',
450
465
  d3: "7.8.5"
451
466
  };
452
467
 
453
468
  exports.Transformer = Transformer;
454
469
  exports.baseJsPaths = baseJsPaths;
455
470
  exports.builtInPlugins = plugins;
456
- exports.fillTemplate = fillTemplate;
471
+ exports.template = template;
457
472
  exports.transformerVersions = transformerVersions;