I have been using Go to define programs that I compile to web assembly.
This works well in general, but I do not yet understanding how to express
mermaid graphs (
https://mermaid-js.github.io/mermaid/) from Go.
A hard-coded graph looks like this:
<div class="mermaid">
graph TD;
A-->B;
click A "
https://www.flyn.org" "FC";
A-->C;
B-->D;
C-->D;
</div>
followed by including the Mermaid JavaScript.
In Go, I am doing this:
div := document.Call("createElement", "div")
div.Call("setAttribute", "class", "mermaid")
parent.Call("appendChild", div)
graph := document.Call("createTextNode", `
graph TD;
A-->B;
click A "
https://www.flyn.org" "FC"
A-->C;
B-->D;
C-->D;`)
div.Call("appendChild", graph)
I also tried:
div.Set("innerHTML", `
graph TD;
[...]`)
Neither of my approaches in Go seem to work. What is printed by the
browser is the graph's textual syntax rather than a rendered graph.
In the case of my hard-coded HTML example, the browser prints a rendered
graph.
As best as I can tell, the Mermaid syntax is whitespace/newline sensitive,
and I think Go or JavaScript might be changing the whitespace/newlines
from those in the graph literal string I provide.
Does anyone know how I should go about this? Am I missing something
obvious?
--
Mike
:wq