chore(依赖): 删掉三个没用到的 vue-flow 插件,代码高亮全站只注册一份

- @vue-flow/minimap、node-resizer、node-toolbar 一处引用都没有
- App.vue 给 n-code 另建了一份 highlight.js,还注册着判题机早就不认的 Java、
  JavaScript、Go;改成空闲时加载 shared/highlight.ts 那份。62 条这三种语言的
  历史提交改为不上色显示

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
xuyueandClaude Opus 5.5 committed 2026-10-12 20:22:32 +08:00
1 parent ea487bdc7b
commit 6216e1cf22
4 files changed
+18 -59

No files matched your search

+6 -38
View File
@@ -43,47 +43,15 @@ watch(
{ immediate: true },
)
// 延迟加载 highlight.js,避免阻塞首屏
const hljsInstance = ref<any>(null)
const loadHighlightJS = async () => {
if (hljsInstance.value) return hljsInstance.value
// 逐个取 .default,不要在 Promise.all 后面 map —— 那样元组会塌成
// (HLJSApi | LanguageFn)[],每个元素都变成联合类型,hljs 上就找不到方法了
const [core, c, cpp, python, java, javascript, go, sql] = await Promise.all([
import("highlight.js/lib/core"),
import("highlight.js/lib/languages/c"),
import("highlight.js/lib/languages/cpp"),
import("highlight.js/lib/languages/python"),
import("highlight.js/lib/languages/java"),
import("highlight.js/lib/languages/javascript"),
import("highlight.js/lib/languages/go"),
import("highlight.js/lib/languages/sql"),
])
const hljs = core.default
hljs.registerLanguage("c", c.default)
hljs.registerLanguage("python", python.default)
hljs.registerLanguage("cpp", cpp.default)
hljs.registerLanguage("java", java.default)
hljs.registerLanguage("javascript", javascript.default)
hljs.registerLanguage("go", go.default)
hljs.registerLanguage("sql", sql.default)
hljsInstance.value = hljs
return hljs
}
// 在空闲时预加载
// n-code(提交详情、看代码的弹框)用的 highlight.js,空闲时再加载,不挡首屏
const hljsInstance = shallowRef<typeof import("shared/highlight").hljs>()
onMounted(() => {
if ("requestIdleCallback" in window) {
requestIdleCallback(() => loadHighlightJS())
} else {
setTimeout(() => loadHighlightJS(), 1000)
const load = async () => {
hljsInstance.value = (await import("shared/highlight")).hljs
}
if ("requestIdleCallback" in window) requestIdleCallback(load)
else setTimeout(load, 1000)
})
provide("hljs", hljsInstance)
</script>
<template>
+4 -1
View File
@@ -1,5 +1,6 @@
/**
* 代码高亮:自学的练一练、以及 Markdown.vue 里的代码块共用这一份(配色在 highlight.css)。
* 代码高亮:自学的练一练、Markdown.vue 里的代码块、以及 App.vue 交给 n-code 的都是这一份
* (配色在 highlight.css)。
* 只注册判题机认的几种语言,别的语言和不标语言的代码块按原文显示。
*/
import hljs from "highlight.js/lib/core"
@@ -13,6 +14,8 @@ hljs.registerLanguage("c", c)
hljs.registerLanguage("cpp", cpp)
hljs.registerLanguage("sql", sql)
export { hljs }
const LANGUAGE_ALIASES: Record<string, string> = {
python: "python",
py: "python",