From a5662cd586605b53e6541ef41b8e2a92d8be9594 Mon Sep 17 00:00:00 2001 From: bfyes <2243301828@qq.com> Date: Mon, 17 Aug 2026 02:00:03 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20MathJax=20=E5=9C=A8=E9=A1=B5=E9=9D=A2?= =?UTF-8?q?=E5=88=87=E6=8D=A2=E5=92=8C=E9=83=A8=E5=88=86=E5=88=9D=E6=AC=A1?= =?UTF-8?q?=E5=8A=A0=E8=BD=BD=E5=AF=BC=E8=87=B4=E7=9A=84=E5=8F=B3=E9=94=AE?= =?UTF-8?q?=E8=8F=9C=E5=8D=95=E5=BC=82=E5=B8=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/javascripts/mathjax.js | 22 ++++++++++++++++------ zensical.toml | 1 - 2 files changed, 16 insertions(+), 7 deletions(-) diff --git a/docs/javascripts/mathjax.js b/docs/javascripts/mathjax.js index 5209b3c1..172d332b 100644 --- a/docs/javascripts/mathjax.js +++ b/docs/javascripts/mathjax.js @@ -1,4 +1,4 @@ -window.MathJax = { +var MATHJAX_CONFIG = { tex: { inlineMath: [["\\(", "\\)"]], displayMath: [["\\[", "\\]"]], @@ -11,9 +11,19 @@ window.MathJax = { }, }; -document$.subscribe(() => { - MathJax.startup.output.clearCache(); - MathJax.typesetClear(); - MathJax.texReset(); - MathJax.typesetPromise(); +// 此处深拷贝原因:MathJax 加载后向 window.MathJax 上挂内部属性,复用会导致第二次加载跳过初始化 +function mathjaxConfig() { + return JSON.parse(JSON.stringify(MATHJAX_CONFIG)); +} + +window.MathJax = mathjaxConfig(); + +// navigation.instant 下每次切页重新加载 MathJax,重建菜单状态 +document$.subscribe(function () { + window.MathJax = mathjaxConfig(); + var existing = document.querySelector('script[src*="mathjax"]'); + if (existing) existing.remove(); + var script = document.createElement("script"); + script.src = "https://cdn.jsdelivr.net/npm/mathjax/es5/tex-mml-chtml.js"; + document.head.appendChild(script); }); diff --git a/zensical.toml b/zensical.toml index 95297db0..c6bc2331 100644 --- a/zensical.toml +++ b/zensical.toml @@ -44,7 +44,6 @@ extra_css = [ extra_javascript = [ "javascripts/mathjax.js", "https://cdn.jsdelivr.net/npm/polyfill/index.min.js", - "https://cdn.jsdelivr.net/npm/mathjax/es5/tex-mml-chtml.js", "https://cdn.jsdelivr.net/npm/tablesort/dist/tablesort.min.js", "javascripts/tablesort.js", "javascripts/v86-init.js",