From 5c5ef561cf67a13735f9a18cf4f538e2b6899969 Mon Sep 17 00:00:00 2001 From: Bruno Charest Date: Thu, 4 Jun 2026 23:23:21 -0400 Subject: [PATCH] =?UTF-8?q?feat:=20Mermaid.js=20integration=20#20-29=20?= =?UTF-8?q?=E2=80=94=20full=20diagram=20support?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - CDN: mermaid@11 from jsdelivr - mermaid-viewer.js: init, render, templates, zoom/pan, fullscreen, focus - All diagram types: flowchart, sequence, class, state, ER, journey, gantt, pie, gitGraph, requirement, mindmap, timeline, quadrant, C4 (x4), beta types - viewer.js: auto-render Mermaid blocks after markdown rendering - utils.js: live preview panel in editor (debounced 500ms) - app.js: initMermaid + setupFocusMode on startup - CSS: container, controls, error, fullscreen overlay, focus panel, live preview - Export SVG/PNG download buttons - Obsidian preprocessor ([[links]], ![[img]], ==highlight==) --- frontend/app.js | 6 + frontend/index.html | 1 + frontend/js/mermaid-viewer.js | 360 ++++++++++++++++++++++++++++++++++ frontend/js/utils.js | 47 ++++- frontend/js/viewer.js | 4 + frontend/style.css | 91 +++++++++ 6 files changed, 507 insertions(+), 2 deletions(-) create mode 100644 frontend/js/mermaid-viewer.js diff --git a/frontend/app.js b/frontend/app.js index 55d8485..3eee3f6 100644 --- a/frontend/app.js +++ b/frontend/app.js @@ -7828,6 +7828,12 @@ FindInPageManager.init(); ContextMenuManager.init(); + // Mermaid.js init + import('./mermaid-viewer.js').then(function(m) { + m.initMermaid(); + m.setupFocusMode(); + }); + // Check auth status first const authOk = await AuthManager.initAuth(); diff --git a/frontend/index.html b/frontend/index.html index 8837a8a..d5aecaf 100644 --- a/frontend/index.html +++ b/frontend/index.html @@ -61,6 +61,7 @@ /> +