这次确实算我的,不过好歹也是解决了一个许久的问题:Katex刷新后渲染失败。

对前端技术了解不多,我以为问题在Ajax,但是现象上来看并不是这样的。

我之前在Ajax里回调的写法:

$(document).on('pjax:end', function() {
//渲染LaTeX
 renderMathInElement(document.body, {
  delimiters: [
    { left: "$$", right: "$$", display: true },
    { left: "$", right: "$", display: false },
  ],
});
//渲染Mermaid
  mermaid.init();
});

这样仅仅是Ajax刷新页面时渲染,也就产生了“刷新后不渲染,回退就渲染”的怪相。不能局限于难点,其实在footer写个同款渲染js就可以解决问题。

<script>
document.addEventListener('DOMContentLoaded', function() {
 renderMathInElement(document.body, {
  delimiters: [
    { left: "$$", right: "$$", display: true },
    { left: "$", right: "$", display: false },
  ],
});
//渲染Mermaid
  mermaid.init();
});
</script>