mermaid 无官方 SSR 支持,采用客户端 IntersectionObserver 懒加载:服务端
markdown.rs 只产出普通 <pre><code class="language-mermaid"> 代码块,
前端在块进视口时动态 import 独立 bundle(~1MB)渲染成 SVG。
新增 libs/mermaid-renderer/:mermaid 11.16 IIFE bundle,输出 public/mermaid/
yggdrasil-core/mermaid.ts:扫描 language-mermaid 块,视口可见时动态 import
/mermaid/mermaid.js(单例缓存),mermaid.initialize 适配 light/dark 主题,
securityLevel=strict;渲染失败加 .mermaid-error class 保留源码;幂等守卫
post-content.ts:initCopyButtons 跳过 language-mermaid 块(图无需 copy)
post_content.rs:use_effect 调 __initMermaid('.post-content', theme),
读 use_resolved_theme() 传主题并建立订阅
新增 6 个 mermaid 单测(扫描/主题/幂等/非mermaid/未命中/错误回退)。
550 Rust + 28 前端测试全过,双 target 编译通过。
40 lines
519 B
Plaintext
40 lines
519 B
Plaintext
/target
|
|
/dist
|
|
/.dioxus
|
|
/.omc
|
|
/node_modules
|
|
**/**/node_modules
|
|
/package-lock.json
|
|
others/
|
|
public/style.css
|
|
public/highlight.css
|
|
public/katex
|
|
public/tiptap
|
|
public/codemirror
|
|
public/lightbox
|
|
public/yggdrasil-core
|
|
public/xterm
|
|
public/mermaid
|
|
public/doc
|
|
/static
|
|
.env
|
|
docs/superpowers/
|
|
|
|
# Uploaded images
|
|
uploads/*
|
|
!uploads/.gitkeep
|
|
uploads/.cache/
|
|
|
|
# Database backups
|
|
backups/
|
|
|
|
profile.json.gz
|
|
|
|
# Git worktrees
|
|
.worktrees/
|
|
|
|
# FreeBSD cross-compile sysroot (extracted from base.txz, machine-local)
|
|
.freebsd-sysroot/
|
|
|
|
.zcode/
|