xcloud-ai2 downloads流程图懒加载:视口外的 Mermaid 流程图延迟渲染,打开含大量图表的笔记不再卡顿.
[!NOTE] 中文说明 流程图懒加载:视口外的 Mermaid 流程图延迟渲染,打开含大量图表的笔记不再卡顿。
打开一篇包含几十个 Mermaid 流程图的笔记时,Obsidian 会同步渲染所有图表,导致卡顿几秒才能正常操作。本插件接管 Mermaid 渲染,只渲染屏幕可见区域内的流程图,其余滚动到附近时再加载,大幅提升打开速度。不修改任何笔记内容,关闭插件即恢复原生渲染。
English description below for review purposes. / 以下为英文说明,用于过审。
XU Mermaid Lazy Render is an Obsidian plugin that defers rendering of off-screen Mermaid diagrams. Instead of rendering every diagram synchronously when a note opens (which freezes the UI for seconds on diagram-heavy notes), only diagrams in or near the viewport are rendered; the rest load on demand as you scroll. Your notes are never modified — disabling the plugin restores native rendering.
main.js、manifest.json、styles.css 三个文件.obsidian/plugins/mermaid-lazy-render/From Obsidian Community Directory:
Manual Installation:
main.js, manifest.json, styles.css from the latest release<vault>/.obsidian/plugins/mermaid-lazy-render/Ctrl+P 可使用「渲染当前笔记所有流程图」「渲染当前视口内的流程图」命令。[!NOTE] Obsidian 1.13+ 中 Mermaid 默认关闭,需先在 设置 → 编辑器 中开启 Mermaid,否则占位符会提示「Mermaid 未启用」。
Ctrl+P for "Render all diagrams in current note" or "Render diagrams in current viewport".| 设置项 | 默认值 | 说明 |
|---|---|---|
| 启用懒加载 | 开 | 关闭后恢复 Obsidian 原生渲染 |
| 渲染触发方式 | 自动 | 自动=滚动到视口附近渲染;手动=点击才渲染 |
| 预渲染边距 | 200px | 距离视口多少像素内开始渲染 |
| 占位符显示图表类型 | 开 | 占位符上显示流程图类型 |
| 主题切换时重新渲染 | 开 | 切换明暗主题后自动重绘已显示的图 |
| 命令 | 作用 |
|---|---|
| 渲染当前笔记中所有流程图 | 强制渲染当前笔记内所有未渲染的 Mermaid 图 |
| 渲染当前视口内的流程图 | 只渲染当前屏幕可见区域的流程图 |
registerMarkdownCodeBlockProcessor('mermaid', ...) 接管 Obsidian 内置 Mermaid 渲染器(与 Beauty Diagram / Beautiful Mermaid Renderer 同一机制)。MarkdownRenderChild 管理生命周期,文档关闭时自动断开 IntersectionObserver、取消渲染,无内存泄漏。window.mermaid.render(),输出与原生一致;渲染前对 SVG 做消毒(移除 on* 事件属性、<script>/<iframe>、javascript: URL)。MutationObserver 监听 body.class 的 theme-light/theme-dark 变化,重渲染已显示的图。isDesktopOnly: false)。MIT License - Copyright (c) 2026 旭说