solstice23/argon-theme

[Feature Request] 设置特定文章单独加载mathjax

sicl5300 opened this issue · 3 comments

Discussed in #575

Originally posted by sicl5300 December 10, 2022
这Mathjax太大了,开启后博客所有页面都会加载,访问体验一般,如何只对特定页面/文章设置加载mathjax?

我是直接全局禁用,并直接在文章结尾使用可重用区块:

		<script>
				window.MathJax = {
					tex: {
						inlineMath: [["$", "$"], ["\\\\(", "\\\\)"]],
						displayMath: [['$$','$$']],
						processEscapes: true,
						packages: {'[+]': ['noerrors']}
					},
					options: {
						skipHtmlTags: ['script', 'noscript', 'style', 'textarea', 'pre', 'code'],
						ignoreHtmlClass: 'tex2jax_ignore',
						processHtmlClass: 'tex2jax_process'
					},
					loader: {
						load: ['[tex]/noerrors']
					}
				};
			</script>
			<script src="//cdn.bootcdn.net/ajax/libs/mathjax/3.2.2/es5/tex-chtml-full.js" id="MathJax-script" async=""></script>

显然,这样做并不优雅,也不规范。

额,文章是pjax加载的,不知道怎么才能实现。

介于Pjax的特性,大部分静态资源会在第一次访问网站时加载后,再访问其他站内页面通常是不用再次加载的。
通俗的来讲,就是只需要加载一次。

用了个笨方法,我直接在可重用区块中加了个<div id="flag"/>然后

window.pjaxLoaded = () => {
    if(document.getElementById('flag') != null) {
        location.reload()
    }
}

😭