markmap-lib
Version:
Visualize your Markdown as mindmaps with Markmap
45 lines (40 loc) • 1.62 kB
JavaScript
"use strict";
exports.__esModule = true;
exports.fillTemplate = fillTemplate;
var _util = require("./util");
var _plugins = require("./plugins");
const template = "\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";
const baseJs = ['https://cdn.jsdelivr.net/npm/d3@5', 'https://cdn.jsdelivr.net/npm/markmap-lib@0.7.8/dist/browser/view.min.js'].map(src => ({
type: 'script',
data: {
src
}
}));
function fillTemplate(data, opts) {
const {
js,
css,
initializers
} = (0, _util.persistPlugins)([(opts == null ? void 0 : opts.mathJax) && _plugins.mathJax, (opts == null ? void 0 : opts.prism) && _plugins.prism].filter(Boolean), opts);
const jsList = [...(0, _util.persistJS)(baseJs), js, ...(0, _util.persistJS)([{
type: 'iife',
data: {
fn: (data, ...initializers) => {
const {
Markmap
} = window.markmap;
initializers.forEach(initialize => initialize(Markmap));
Markmap.create('svg#mindmap', null, data);
},
getParams: ({
data,
initializers
}) => [data, ...initializers]
}
}], {
data,
initializers
})];
const html = template.replace('<!--CSS-->', css).replace('<!--JS-->', jsList.join(''));
return html;
}