mirror of
				https://github.com/mermaid-js/mermaid.git
				synced 2025-10-30 18:34:09 +01:00 
			
		
		
		
	Add mini-live editing to example.html
This commit is contained in:
		| @@ -3,10 +3,23 @@ | ||||
| <html> | ||||
|   <head> | ||||
|     <title>Mermaid development page</title> | ||||
|     <style> | ||||
|       .container { | ||||
|         display: flex; | ||||
|         flex-direction: row; | ||||
|       } | ||||
|  | ||||
|       #code { | ||||
|         max-width: 30vw; | ||||
|         width: 30vw; | ||||
|       } | ||||
|  | ||||
|       #dynamicDiagram { | ||||
|         flex: 1; | ||||
|       } | ||||
|     </style> | ||||
|   </head> | ||||
|   <body> | ||||
|     <pre class="mermaid">info</pre> | ||||
|  | ||||
|     <pre id="diagram" class="mermaid"> | ||||
| graph TB | ||||
|       a --> b | ||||
| @@ -15,22 +28,35 @@ graph TB | ||||
|       c --> d | ||||
|     </pre> | ||||
|  | ||||
|     <hr /> | ||||
|     Type code to view diagram: | ||||
|     <div class="container"> | ||||
|       <textarea name="code" id="code" cols="30" rows="10"></textarea> | ||||
|       <div id="dynamicDiagram"></div> | ||||
|     </div> | ||||
|     <pre class="mermaid">info</pre> | ||||
|  | ||||
|     <script type="module"> | ||||
|       import mermaid from '/mermaid.esm.mjs'; | ||||
|       mermaid.parseError = function (err, hash) { | ||||
|         console.error('Mermaid error: ', err); | ||||
|       }; | ||||
|       async function render(str) { | ||||
|         const { svg } = await mermaid.render('dynamic', str); | ||||
|         document.getElementById('dynamicDiagram').innerHTML = svg; | ||||
|       } | ||||
|       const storeKey = window.location.pathname; | ||||
|       const code = localStorage.getItem(storeKey); | ||||
|       if (code) { | ||||
|         document.getElementById('code').value = code; | ||||
|         await render(code); | ||||
|       } | ||||
|       mermaid.initialize({ | ||||
|         startOnLoad: true, | ||||
|         logLevel: 0, | ||||
|       }); | ||||
|       const value = `graph TD\nHello --> World`; | ||||
|       const el = document.getElementById('dynamicDiagram'); | ||||
|       const { svg } = await mermaid.render('dd', value); | ||||
|       console.log(svg); | ||||
|       el.innerHTML = svg; | ||||
|       document.getElementById('code').addEventListener('input', async (e) => { | ||||
|         const value = e.target.value; | ||||
|         localStorage.setItem(storeKey, value); | ||||
|         await render(value); | ||||
|       }); | ||||
|     </script> | ||||
|  | ||||
|     <script src="/dev/reload.js"></script> | ||||
|   | ||||
		Reference in New Issue
	
	Block a user
	 Sidharth Vinod
					Sidharth Vinod