|
1 | 1 | <!-- mermaid-js loader --> |
2 | 2 | <script type="text/javascript"> |
3 | | - (function () { |
4 | | - function updateMermaid(event) { |
5 | | - if (event.source === window && event.data && event.data.direction === ModeToggle.ID) { |
6 | | - const mode = event.data.message; |
7 | | - |
8 | | - if (typeof mermaid === 'undefined') { |
9 | | - return; |
10 | | - } |
11 | | - |
12 | | - let expectedTheme = mode === ModeToggle.DARK_MODE ? 'dark' : 'default'; |
13 | | - let config = { theme: expectedTheme }; |
14 | | - |
15 | | - /* Re-render the SVG › <https://github.com/mermaid-js/mermaid/issues/311#issuecomment-332557344> */ |
16 | | - $('.mermaid').each(function () { |
17 | | - let svgCode = $(this).prev().children().html(); |
18 | | - $(this).removeAttr('data-processed'); |
19 | | - $(this).html(svgCode); |
20 | | - }); |
21 | | - |
22 | | - mermaid.initialize(config); |
23 | | - mermaid.init(undefined, '.mermaid'); |
| 3 | + function updateMermaid(event) { |
| 4 | + if (event.source === window && event.data && event.data.direction === ModeToggle.ID) { |
| 5 | + const mode = event.data.message; |
| 6 | + |
| 7 | + if (typeof mermaid === 'undefined') { |
| 8 | + return; |
24 | 9 | } |
| 10 | + |
| 11 | + let expectedTheme = mode === ModeToggle.DARK_MODE ? 'dark' : 'default'; |
| 12 | + let config = { theme: expectedTheme }; |
| 13 | + |
| 14 | + /* Re-render the SVG › <https://github.com/mermaid-js/mermaid/issues/311#issuecomment-332557344> */ |
| 15 | + const mermaidList = document.getElementsByClassName('mermaid'); |
| 16 | + |
| 17 | + [...mermaidList].forEach((elem) => { |
| 18 | + const svgCode = elem.previousSibling.children.item(0).innerHTML; |
| 19 | + elem.innerHTML = svgCode; |
| 20 | + elem.removeAttribute('data-processed'); |
| 21 | + }); |
| 22 | + |
| 23 | + mermaid.initialize(config); |
| 24 | + mermaid.init(undefined, '.mermaid'); |
25 | 25 | } |
| 26 | + } |
26 | 27 |
|
| 28 | + (function () { |
27 | 29 | let initTheme = 'default'; |
28 | 30 | const html = document.documentElement; |
29 | 31 |
|
|
35 | 37 | } |
36 | 38 |
|
37 | 39 | let mermaidConf = { |
38 | | - theme: initTheme /* <default|dark|forest|neutral> */ |
| 40 | + theme: initTheme /* <default | dark | forest | neutral> */ |
39 | 41 | }; |
40 | 42 |
|
41 | 43 | /* Create mermaid tag */ |
42 | | - document.querySelectorAll('pre>code.language-mermaid').forEach((elem) => { |
| 44 | + const basicList = document.getElementsByClassName('language-mermaid'); |
| 45 | + [...basicList].forEach((elem) => { |
43 | 46 | const svgCode = elem.textContent; |
44 | 47 | const backup = elem.parentElement; |
45 | 48 | backup.classList.add('unloaded'); |
|
52 | 55 | }); |
53 | 56 |
|
54 | 57 | mermaid.initialize(mermaidConf); |
55 | | - |
56 | 58 | window.addEventListener('message', updateMermaid); |
57 | 59 | })(); |
58 | 60 | </script> |
0 commit comments