-
Notifications
You must be signed in to change notification settings - Fork 7
/
reveal-mermaid.js
33 lines (29 loc) · 1.18 KB
/
reveal-mermaid.js
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
29
30
31
32
33
mermaid.initialize({
startOnLoad: false,
theme: 'dark',
logLevel: 3,
});
Reveal.addEventListener('ready', event => asyncMermaidRender(event));
async function asyncMermaidRender(event) {
var graphs = document.getElementsByClassName("mermaid");
graphs.forEach((item, index) => {
let graphCode = item.innerText.trim(); //trim() becase of gantt, class and git diagram
let mermaidDiv = document.createElement('div');
mermaidDiv.classList.add('mermaid');
mermaidDiv.setAttribute("data-processed", "true");
try {
// item.innerText ignores html elements added by revealjs highlight plugin.
mermaid.mermaidAPI.render('theGraph' + index, graphCode, function(svgCode) {
mermaidDiv.innerHTML = svgCode;
});
let parentDiv = document.createElement('div');
parentDiv.appendChild(mermaidDiv);
item.parentNode.parentNode.insertBefore(parentDiv, item.parentNode);
item.parentNode.remove();
}
catch(err) {
console.log("Cannot render mermaid diagram " + index + "\n" + graphCode);
console.log(err.message);
}
})
}