✨ 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

+2
View File
@@ -28,6 +28,7 @@ import { createStore, useStore } from './store'
import { useChangeNav } from './useChangeNav'
import { useDefinitionLinks } from './useDefinitionLinks'
import { useDefinitionPeek } from './useDefinitionPeek'
import { useMermaidDiagrams } from './useMermaidDiagrams'
import { useOccurrences } from './useOccurrences'
import { useQa } from './useQa'
import { useRepoImages } from './useRepoImages'
@@ -105,6 +106,7 @@ export function App(): ReactElement | null {
const sticky = useStickySettings()
useRepoLinks()
useRepoImages()
useMermaidDiagrams()
const nav = useChangeNav(stops, collapsed, expand, sticky)
const occurrencePage = useMemo((): OccurrencePage | undefined => doc
? {