enhanced mermaid

This commit is contained in:
Saifeddine ALOUI
2024-02-08 23:28:50 +01:00
parent 9d90c8c921
commit 175a343c60
3 changed files with 23 additions and 3 deletions

View File

@ -31,6 +31,11 @@ def build_graphviz_output(code, ifram_name="unnamed"):
'<div style="width: 100%; margin: 0 auto;">', '<div style="width: 100%; margin: 0 auto;">',
f'<iframe id="{ifram_name}" srcdoc=\'', f'<iframe id="{ifram_name}" srcdoc=\'',
'<style>', '<style>',
'iframe {',
'width: 100%;',
'height: 100%;',
'border: none;',
'}',
'.graph {', '.graph {',
'background-color: transparent;', 'background-color: transparent;',
'padding: 20px;', 'padding: 20px;',

View File

@ -30,6 +30,13 @@ def build_javascript_output(code, ifram_name="unnamed"):
rendered = "\n".join([ rendered = "\n".join([
'<div style="width: 100%; margin: 0 auto;">', '<div style="width: 100%; margin: 0 auto;">',
f'<iframe id="{ifram_name}" srcdoc="', f'<iframe id="{ifram_name}" srcdoc="',
'<style>',
'iframe {',
'width: 100%;',
'height: 100%;',
'border: none;',
'}',
'</style>',
'<script>', '<script>',
code, code,
'</script>', '</script>',

View File

@ -29,8 +29,13 @@ def build_mermaid_output(code, ifram_name="unnamed"):
start_time = time.time() start_time = time.time()
rendered = "\n".join([ rendered = "\n".join([
'<div style="width: 100%; margin: 0 auto;">', '<div style="width: 100%; margin: 0 auto;">',
f'<iframe id="{ifram_name}" srcdoc="', f'<iframe id="{ifram_name}" style="width: 100%" srcdoc="',
'<style>', '<style>',
'iframe {',
'width: 100%;',
'height: 100%;',
'border: none;',
'}',
'.mermaid {', '.mermaid {',
'background-color: transparent;', 'background-color: transparent;',
'padding: 20px;', 'padding: 20px;',
@ -44,7 +49,6 @@ def build_mermaid_output(code, ifram_name="unnamed"):
'<div class=\'mermaid\'>', '<div class=\'mermaid\'>',
"\n".join([c for c in code.split("\n") if c.strip()!=""]), "\n".join([c for c in code.split("\n") if c.strip()!=""]),
'</div>', '</div>',
'<button onclick="saveSVG()">Save SVG</button>',
'<script src=\'https://cdn.jsdelivr.net/npm/mermaid/dist/mermaid.min.js\'></script>', '<script src=\'https://cdn.jsdelivr.net/npm/mermaid/dist/mermaid.min.js\'></script>',
'<script>', '<script>',
'// Initialize the mermaid library and render our diagram', '// Initialize the mermaid library and render our diagram',
@ -60,10 +64,11 @@ def build_mermaid_output(code, ifram_name="unnamed"):
'a.href = url;', 'a.href = url;',
'a.download = "diagram.svg";', 'a.download = "diagram.svg";',
'a.click();', 'a.click();',
'}', '}',
'</script>', '</script>',
'<div style=\'text-align: center;\'>', '<div style=\'text-align: center;\'>',
'</div>', '</div>',
'<button onclick="saveSVG()">Save SVG</button>',
'" style="width: 100%; height: 600px; border: none;"></iframe>', '" style="width: 100%; height: 600px; border: none;"></iframe>',
'</div>' '</div>'
] ]
@ -72,6 +77,9 @@ def build_mermaid_output(code, ifram_name="unnamed"):
return {"output": rendered, "execution_time": execution_time} return {"output": rendered, "execution_time": execution_time}
def execute_mermaid(code, discussion_id, message_id): def execute_mermaid(code, discussion_id, message_id):
return build_mermaid_output(code) return build_mermaid_output(code)