markmap-autoloader 0.14.3 → 0.14.4-alpha.1

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/README.md CHANGED
@@ -18,14 +18,16 @@ HTML:
18
18
  }
19
19
  </style>
20
20
 
21
- <div class="markmap">
21
+ <div class="markmap"><script type="text/template">
22
22
  - markmap
23
23
  - autoloader
24
24
  - transformer
25
25
  - view
26
- </div>
26
+ </script></div>
27
27
  ```
28
28
 
29
+ Note that `<script type="text/template">` is optional, for the content inside to be invisible before the markmap is rendered.
30
+
29
31
  Autoload all elements matching `.markmap`:
30
32
 
31
33
  ```html
package/dist/index.js CHANGED
@@ -1,4 +1,4 @@
1
- /*! markmap-autoloader v0.14.3 | MIT License */
1
+ /*! markmap-autoloader v0.14.4-alpha.1+8a57fea | MIT License */
2
2
  this.markmap = this.markmap || {};
3
3
  (function (exports) {
4
4
  'use strict';
@@ -98,21 +98,6 @@ async function loadJSItem(item, context) {
98
98
  await item.loaded;
99
99
  }
100
100
 
101
- function loadCSSItem(item) {
102
- if (item.loaded) return;
103
- item.loaded = true;
104
-
105
- if (item.type === 'style') {
106
- document.head.append(createElement('style', {
107
- textContent: item.data
108
- }));
109
- } else if (item.type === 'stylesheet') {
110
- document.head.append(createElement('link', _extends({
111
- rel: 'stylesheet'
112
- }, item.data)));
113
- }
114
- }
115
-
116
101
  async function loadJS(items, context) {
117
102
  const needPreload = items.filter(item => {
118
103
  var _item$data2;
@@ -129,12 +114,6 @@ async function loadJS(items, context) {
129
114
  }
130
115
  }
131
116
 
132
- function loadCSS(items) {
133
- for (const item of items) {
134
- loadCSSItem(item);
135
- }
136
- }
137
-
138
117
  var _window$markmap, _window$markmap$autoL, _window$markmap2, _window$markmap2$auto;
139
118
  const enabled = {};
140
119
  const ready = loadJS(((_window$markmap = window.markmap) == null ? void 0 : (_window$markmap$autoL = _window$markmap.autoLoader) == null ? void 0 : _window$markmap$autoL.baseJs) || [{
@@ -145,7 +124,7 @@ const ready = loadJS(((_window$markmap = window.markmap) == null ? void 0 : (_wi
145
124
  }, {
146
125
  type: 'script',
147
126
  data: {
148
- src: `https://cdn.jsdelivr.net/combine/npm/markmap-lib@${"0.14.3"},npm/markmap-view@${"0.14.3"}`
127
+ src: `https://cdn.jsdelivr.net/combine/npm/markmap-lib@${"0.14.4-alpha.1+8a57fea"},npm/markmap-view@${"0.14.4-alpha.1+8a57fea"}`
149
128
  }
150
129
  }]).then(() => {
151
130
  var _markmap$autoLoader;
@@ -153,19 +132,16 @@ const ready = loadJS(((_window$markmap = window.markmap) == null ? void 0 : (_wi
153
132
  const {
154
133
  markmap
155
134
  } = window;
156
- loadCSS([{
157
- type: 'style',
158
- data: markmap.globalCSS
159
- }]);
135
+ const style = document.createElement('style');
136
+ style.textContent = markmap.globalCSS; // Insert global CSS to body so it has higher priority than prism.css, etc.
137
+
138
+ document.body.prepend(style);
160
139
  (_markmap$autoLoader = markmap.autoLoader) == null ? void 0 : _markmap$autoLoader.onReady == null ? void 0 : _markmap$autoLoader.onReady();
161
140
  });
162
141
 
163
142
  function transform(transformer, content) {
164
- const {
165
- root,
166
- features
167
- } = transformer.transform(content);
168
- const keys = Object.keys(features).filter(key => !enabled[key]);
143
+ const result = transformer.transform(content);
144
+ const keys = Object.keys(result.features).filter(key => !enabled[key]);
169
145
  keys.forEach(key => {
170
146
  enabled[key] = true;
171
147
  });
@@ -178,14 +154,15 @@ function transform(transformer, content) {
178
154
  } = window;
179
155
  if (styles) markmap.loadCSS(styles);
180
156
  if (scripts) markmap.loadJS(scripts);
181
- return root;
157
+ return result;
182
158
  }
183
159
 
184
160
  function render(el) {
185
161
  const {
186
162
  Transformer,
187
163
  Markmap,
188
- autoLoader
164
+ autoLoader,
165
+ deriveOptions
189
166
  } = window.markmap;
190
167
  const lines = el.textContent.split('\n');
191
168
  let indent = Infinity;
@@ -193,7 +170,7 @@ function render(el) {
193
170
  const spaces = line.match(/^\s*/)[0].length;
194
171
  if (spaces < line.length) indent = Math.min(indent, spaces);
195
172
  });
196
- const content = lines.map(line => line.slice(indent)).join('\n');
173
+ const content = lines.map(line => line.slice(indent)).join('\n').trim();
197
174
  const transformer = new Transformer(autoLoader == null ? void 0 : autoLoader.transformPlugins);
198
175
  el.innerHTML = '<svg></svg>';
199
176
  const svg = el.firstChild;
@@ -202,8 +179,13 @@ function render(el) {
202
179
  });
203
180
 
204
181
  const doRender = () => {
205
- const root = transform(transformer, content);
206
- mm.setData(root);
182
+ const {
183
+ root,
184
+ frontmatter
185
+ } = transform(transformer, content);
186
+ const markmapOptions = frontmatter == null ? void 0 : frontmatter.markmap;
187
+ const frontmatterOptions = deriveOptions(markmapOptions);
188
+ mm.setData(root, frontmatterOptions);
207
189
  mm.fit();
208
190
  };
209
191
 
package/dist/index.min.js CHANGED
@@ -1,3 +1,3 @@
1
- /*! markmap-autoloader v0.14.3 | MIT License */
1
+ /*! markmap-autoloader v0.14.4-alpha.1+8a57fea | MIT License */
2
2
  this.markmap=this.markmap||{},function(t){"use strict";
3
- /*! markmap-common v0.14.2 | MIT License */function e(){return e=Object.assign||function(t){for(var e=1;e<arguments.length;e++){var a=arguments[e];for(var n in a)Object.prototype.hasOwnProperty.call(a,n)&&(t[n]=a[n])}return t},e.apply(this,arguments)}function a(t,e,a){const n=document.createElement(t);return e&&Object.entries(e).forEach((([t,e])=>{n[t]=e})),a&&Object.entries(a).forEach((([t,e])=>{n.setAttribute(t,e)})),n}Math.random().toString(36).slice(2,8);const n=function(t){const e={};return function(...a){const n=`${a[0]}`;let r=e[n];return r||(r={value:t(...a)},e[n]=r),r.value}}((t=>{document.head.append(a("link",{rel:"preload",as:"script",href:t}))}));async function r(t,n){if(!t.loaded&&("script"===t.type&&(t.loaded=new Promise(((n,r)=>{var o;document.head.append(a("script",e({},t.data,{onload:n,onerror:r}))),null!=(o=t.data)&&o.src||n(void 0)})).then((()=>{t.loaded=!0}))),"iife"===t.type)){const{fn:e,getParams:a}=t.data;e(...(null==a?void 0:a(n))||[]),t.loaded=!0}await t.loaded}function o(t){t.loaded||(t.loaded=!0,"style"===t.type?document.head.append(a("style",{textContent:t.data})):"stylesheet"===t.type&&document.head.append(a("link",e({rel:"stylesheet"},t.data))))}var s,d,c,l;const i={},u=async function(t,a){const o=t.filter((t=>{var e;return"script"===t.type&&(null==(e=t.data)?void 0:e.src)}));o.length>1&&o.forEach((t=>n(t.data.src))),a=e({getMarkmap:()=>window.markmap},a);for(const e of t)await r(e,a)}((null==(s=window.markmap)||null==(d=s.autoLoader)?void 0:d.baseJs)||[{type:"script",data:{src:"https://cdn.jsdelivr.net/npm/d3@6.7.0"}},{type:"script",data:{src:"https://cdn.jsdelivr.net/combine/npm/markmap-lib@0.14.3,npm/markmap-view@0.14.3"}}]).then((()=>{var t;const{markmap:e}=window;!function(t){for(const e of t)o(e)}([{type:"style",data:e.globalCSS}]),null==(t=e.autoLoader)||null==t.onReady||t.onReady()}));function m(t){const{Transformer:e,Markmap:a,autoLoader:n}=window.markmap,r=t.textContent.split("\n");let o=1/0;r.forEach((t=>{const e=t.match(/^\s*/)[0].length;e<t.length&&(o=Math.min(o,e))}));const s=r.map((t=>t.slice(o))).join("\n"),d=new e(null==n?void 0:n.transformPlugins);t.innerHTML="<svg></svg>";const c=t.firstChild,l=a.create(c,{embedGlobalCSS:!1}),u=()=>{const t=function(t,e){const{root:a,features:n}=t.transform(e),r=Object.keys(n).filter((t=>!i[t]));r.forEach((t=>{i[t]=!0}));const{styles:o,scripts:s}=t.getAssets(r),{markmap:d}=window;return o&&d.loadCSS(o),s&&d.loadJS(s),a}(d,s);l.setData(t),l.fit()};d.hooks.retransform.tap(u),u()}async function p(t){await u,t.querySelectorAll(".markmap").forEach(m)}function f(){return p(document)}null!=(c=window.markmap)&&null!=(l=c.autoLoader)&&l.manual||("loading"===document.readyState?document.addEventListener("DOMContentLoaded",(()=>{f()})):f()),t.ready=u,t.render=m,t.renderAll=f,t.renderAllUnder=p}(this.markmap.autoLoader=this.markmap.autoLoader||{});
3
+ /*! markmap-common v0.14.2 | MIT License */function a(){return a=Object.assign||function(t){for(var a=1;a<arguments.length;a++){var n=arguments[a];for(var e in n)Object.prototype.hasOwnProperty.call(n,e)&&(t[e]=n[e])}return t},a.apply(this,arguments)}function n(t,a,n){const e=document.createElement(t);return a&&Object.entries(a).forEach((([t,a])=>{e[t]=a})),n&&Object.entries(n).forEach((([t,a])=>{e.setAttribute(t,a)})),e}Math.random().toString(36).slice(2,8);const e=function(t){const a={};return function(...n){const e=`${n[0]}`;let r=a[e];return r||(r={value:t(...n)},a[e]=r),r.value}}((t=>{document.head.append(n("link",{rel:"preload",as:"script",href:t}))}));async function r(t,e){if(!t.loaded&&("script"===t.type&&(t.loaded=new Promise(((e,r)=>{var o;document.head.append(n("script",a({},t.data,{onload:e,onerror:r}))),null!=(o=t.data)&&o.src||e(void 0)})).then((()=>{t.loaded=!0}))),"iife"===t.type)){const{fn:a,getParams:n}=t.data;a(...(null==n?void 0:n(e))||[]),t.loaded=!0}await t.loaded}var o,s,d,c;const i={},l=async function(t,n){const o=t.filter((t=>{var a;return"script"===t.type&&(null==(a=t.data)?void 0:a.src)}));o.length>1&&o.forEach((t=>e(t.data.src))),n=a({getMarkmap:()=>window.markmap},n);for(const a of t)await r(a,n)}((null==(o=window.markmap)||null==(s=o.autoLoader)?void 0:s.baseJs)||[{type:"script",data:{src:"https://cdn.jsdelivr.net/npm/d3@6.7.0"}},{type:"script",data:{src:"https://cdn.jsdelivr.net/combine/npm/markmap-lib@0.14.4-alpha.1+8a57fea,npm/markmap-view@0.14.4-alpha.1+8a57fea"}}]).then((()=>{var t;const{markmap:a}=window,n=document.createElement("style");n.textContent=a.globalCSS,document.body.prepend(n),null==(t=a.autoLoader)||null==t.onReady||t.onReady()}));function m(t){const{Transformer:a,Markmap:n,autoLoader:e,deriveOptions:r}=window.markmap,o=t.textContent.split("\n");let s=1/0;o.forEach((t=>{const a=t.match(/^\s*/)[0].length;a<t.length&&(s=Math.min(s,a))}));const d=o.map((t=>t.slice(s))).join("\n").trim(),c=new a(null==e?void 0:e.transformPlugins);t.innerHTML="<svg></svg>";const l=t.firstChild,m=n.create(l,{embedGlobalCSS:!1}),u=()=>{const{root:t,frontmatter:a}=function(t,a){const n=t.transform(a),e=Object.keys(n.features).filter((t=>!i[t]));e.forEach((t=>{i[t]=!0}));const{styles:r,scripts:o}=t.getAssets(e),{markmap:s}=window;return r&&s.loadCSS(r),o&&s.loadJS(o),n}(c,d),n=null==a?void 0:a.markmap,e=r(n);m.setData(t,e),m.fit()};c.hooks.retransform.tap(u),u()}async function u(t){await l,t.querySelectorAll(".markmap").forEach(m)}function p(){return u(document)}null!=(d=window.markmap)&&null!=(c=d.autoLoader)&&c.manual||("loading"===document.readyState?document.addEventListener("DOMContentLoaded",(()=>{p()})):p()),t.ready=l,t.render=m,t.renderAll=p,t.renderAllUnder=u}(this.markmap.autoLoader=this.markmap.autoLoader||{});
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "markmap-autoloader",
3
- "version": "0.14.3",
3
+ "version": "0.14.4-alpha.1+8a57fea",
4
4
  "description": "Load markmaps automatically in HTML",
5
5
  "author": "Gerald <gera2ld@live.com>",
6
6
  "license": "MIT",
@@ -42,8 +42,8 @@
42
42
  },
43
43
  "devDependencies": {
44
44
  "markmap-common": "^0.14.2",
45
- "markmap-lib": "^0.14.3",
46
- "markmap-view": "^0.14.3"
45
+ "markmap-lib": "^0.14.4-alpha.1+8a57fea",
46
+ "markmap-view": "^0.14.4-alpha.1+8a57fea"
47
47
  },
48
- "gitHead": "ef956864fe1a6d9927bf2febbf597f6866efe75d"
48
+ "gitHead": "8a57fea7292bee5c50dc0594553d5da62e46d9f8"
49
49
  }