1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
import { elements } from "https://esm.town/v/jdan/elements";
import { markov } from "https://esm.town/v/jdan/markov";
import { mermaidStateDiagramOfMarkov } from "https://esm.town/v/jdan/mermaidStateDiagramOfMarkov";
export async function mermaidHtml() {
const numElements = 30;
const ngram = 2;
const mermaid = mermaidStateDiagramOfMarkov(
markov(
elements.slice(0, numElements),
ngram,
),
);
return new Response(
`
<!DOCTYPE html>
<html lang="en">
<body>
<pre class="mermaid">${mermaid}</pre>
<script type="module">
import mermaid from 'https://cdn.jsdelivr.net/npm/mermaid@10/dist/mermaid.esm.min.mjs';
</script>
</body>
</html>
`,
{ headers: { "Content-Type": "text/html" } },
);
}