diff --git a/assets/index.html b/assets/index.html index 4dd3148..462c3a0 100644 --- a/assets/index.html +++ b/assets/index.html @@ -1,5 +1,5 @@ - + @@ -1427,6 +1427,10 @@

Markdown Preview

// ── Boot ────────────────────────────────────────────────────── (async function boot() { try { + if (document.documentElement.dataset.mermaidElk === 'true') { + const elkLayouts = await import('https://cdn.jsdelivr.net/npm/@mermaid-js/layout-elk@0.2.1/dist/mermaid-layout-elk.esm.min.mjs'); + mermaid.registerLayoutLoaders(elkLayouts.default || elkLayouts); + } applyTheme('dark'); await sync(true); } catch (e) { diff --git a/lua/markdown_preview/init.lua b/lua/markdown_preview/init.lua index 9cff795..f17e5f2 100644 --- a/lua/markdown_preview/init.lua +++ b/lua/markdown_preview/init.lua @@ -35,6 +35,10 @@ M.config = { -- "rust" = pre-render via mermaid-rs-renderer (mmdr) CLI (~400x faster) mermaid_renderer = "js", + -- Load ELK layout engine for mermaid diagrams (requires internet; adds ~800 KB). + -- Enables %%{init: {"layout": "elk"}}%% in diagrams. + mermaid_elk = false, + scroll_sync = true, -- sync browser scroll to cursor position -- Fraction (0–1): vertical position of the final line when scrolled to end. @@ -95,6 +99,7 @@ local function write_index(dir) end local content = util.read_text(src) content = content:gsub("__BOTTOM_PADDING__", tostring(M.config.bottom_padding)) + content = content:gsub("__MERMAID_ELK__", M.config.mermaid_elk and "true" or "false") util.write_text(dst, content) return dst end