Skip to content

Commit a1db6e1

Browse files
authored
add mermaid (#278)
* add mermaid * update recommended libraries
1 parent 924d8f8 commit a1db6e1

File tree

5 files changed

+24
-4
lines changed

5 files changed

+24
-4
lines changed

bin/resolve-dependencies

+4
Original file line numberDiff line numberDiff line change
@@ -78,6 +78,10 @@ const mains = ["unpkg", "jsdelivr", "browser", "main"];
7878
const package = await resolve("exceljs");
7979
console.log(`export const exceljs = dependency("${package.name}", "${package.version}", "${package.export}");`);
8080
}
81+
{
82+
const package = await resolve("mermaid");
83+
console.log(`export const mermaid = dependency("${package.name}", "${package.version}", "${package.export.replace(/\.core\.js$/, ".min.js")}");`);
84+
}
8185
})();
8286

8387
async function resolve(specifier) {

src/dependencies.js

+5-4
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,20 @@
11
import dependency from "./dependency.js";
2-
export const d3 = dependency("d3", "7.3.0", "dist/d3.min.js");
2+
export const d3 = dependency("d3", "7.4.4", "dist/d3.min.js");
33
export const inputs = dependency("@observablehq/inputs", "0.10.4", "dist/inputs.min.js");
4-
export const plot = dependency("@observablehq/plot", "0.4.2", "dist/plot.umd.min.js");
4+
export const plot = dependency("@observablehq/plot", "0.4.3", "dist/plot.umd.min.js");
55
export const graphviz = dependency("@observablehq/graphviz", "0.2.1", "dist/graphviz.min.js");
66
export const highlight = dependency("@observablehq/highlight.js", "2.0.0", "highlight.min.js");
77
export const katex = dependency("@observablehq/katex", "0.11.1", "dist/katex.min.js");
88
export const lodash = dependency("lodash", "4.17.21", "lodash.min.js");
99
export const htl = dependency("htl", "0.3.1", "dist/htl.min.js");
10-
export const jszip = dependency("jszip", "3.7.1", "dist/jszip.min.js");
10+
export const jszip = dependency("jszip", "3.9.1", "dist/jszip.min.js");
1111
export const marked = dependency("marked", "0.3.12", "marked.min.js");
1212
export const sql = dependency("sql.js", "1.6.2", "dist/sql-wasm.js");
13-
export const vega = dependency("vega", "5.21.0", "build/vega.min.js");
13+
export const vega = dependency("vega", "5.22.1", "build/vega.min.js");
1414
export const vegalite = dependency("vega-lite", "5.2.0", "build/vega-lite.min.js");
1515
export const vegaliteApi = dependency("vega-lite-api", "5.0.0", "build/vega-lite-api.min.js");
1616
export const arrow = dependency("apache-arrow", "4.0.1", "Arrow.es2015.min.js");
1717
export const arquero = dependency("arquero", "4.8.8", "dist/arquero.min.js");
1818
export const topojson = dependency("topojson-client", "3.1.0", "dist/topojson-client.min.js");
1919
export const exceljs = dependency("exceljs", "4.3.0", "dist/exceljs.min.js");
20+
export const mermaid = dependency("mermaid", "9.0.0", "dist/mermaid.min.js");

src/library.js

+2
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ import {AbstractFile, NoFileAttachments} from "./fileAttachment.js";
55
import Generators from "./generators/index.js";
66
import html from "./html.js";
77
import md from "./md.js";
8+
import mermaid from "./mermaid.js";
89
import Mutable from "./mutable.js";
910
import now from "./now.js";
1011
import Promises from "./promises/index.js";
@@ -34,6 +35,7 @@ export default Object.assign(function Library(resolver) {
3435
htl: () => require(htl.resolve()),
3536
html: () => html,
3637
md: () => md(require),
38+
mermaid: () => mermaid(require),
3739
now,
3840
require: () => require,
3941
resolve: () => resolve,

src/mermaid.js

+12
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
import {mermaid as merd} from "./dependencies.js";
2+
import uid from "./dom/uid.js";
3+
4+
export default async function mermaid(require) {
5+
const mer = await require(merd.resolve());
6+
mer.initialize({securityLevel: "loose", theme: "neutral"});
7+
return function mermaid() {
8+
const root = document.createElement("div");
9+
root.innerHTML = mer.render(uid().id, String.raw.apply(String, arguments));
10+
return root.removeChild(root.firstChild);
11+
};
12+
}

test/index-test.js

+1
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@ test("new Library returns a library with the expected keys", async t => {
2121
"htl",
2222
"html",
2323
"md",
24+
"mermaid",
2425
"now",
2526
"require",
2627
"resolve",

0 commit comments

Comments
 (0)