✨ feat(vscode): 代码阅读预览把注释、说明、问 AI 回答里的 mermaid 代码块画成图

- markdown.ts:mermaid 代码块出占位(源码转义后记在 data-source,里面先放原样的代码块);带增删的说明、逐字生成中的回答仍是普通代码块
- useMermaidDiagrams:页面上有占位才按需加载 mermaid(strict、跟 VS Code 字体),按源码 + 配色缓存 SVG,一次只画一张,换主题重画;画不出来留代码块、下面一行原因
- 打包:Vite 的按需加载辅助函数单独成块,加构建检查禁止别的块 import 入口(入口带 ?v= 加载,被 import 会整页再跑一遍、第二次拿 VS Code API 报错)
- 主题明暗判断抽到 lib/vscodeTheme,看板的改动面板共用
This commit is contained in:
cruldra committed 2026-10-13 18:51:05 +11:00
1 parent bc84e74f29
commit 6dac457ed1
11 files changed
+1289 -24

No files matched your search

+10
View File
@@ -0,0 +1,10 @@
/**
* 当前 VS Code 主题是浅色还是深色:webview 的 body 带 `vscode-light` 或 `vscode-high-contrast-light` 是浅色,
* 别的(`vscode-dark`、`vscode-high-contrast`)都算深色。主题切换时 VS Code 改的是 body 的 class。
*/
export function vscodeThemeKind(): 'light' | 'dark' {
if (typeof document === 'undefined')
return 'dark'
const classes = document.body.classList
return classes.contains('vscode-light') || classes.contains('vscode-high-contrast-light') ? 'light' : 'dark'
}