rt.
已知bug已经全部修复完毕。
已知bug:
- 代码高亮、目录和公式的js尚未回调,如果确实需要请手动刷新查看。
archives
页面出现未知错误。- (感谢Duanyll大佬)评论区在pjax加载后无法使用。
欢迎在评论区反馈bug。
启用pjax
参考资料:https://www.ihewro.com/archives/354/
先引入jQuery和pjax的js文件。
注意:jq2.x配pjax1.x,jq3.x配pjax2.x
<script src="https://cdn.bootcss.com/jquery/3.1.1/jquery.min.js"></script>
<script src="https://cdn.bootcss.com/jquery.pjax/2.0.1/jquery.pjax.js"></script>
然后调用pjax,我的是这么写的:
<script>
$(document).pjax('a[href^="<?php Helper::options()->siteUrl()?>"]:not(a[target="_blank"], a[no-pjax])', {
container: '#pjax',
fragment: '#pjax',
timeout: 8000
})
</script>
其中<?php Helper::options()->siteUrl()?>
是typecho的自带函数,意思是站点首页的url。在这里就给整个站点所有非blank的链接绑定pjax。container和fragment就是指需要pjax刷新的部分,timeout就是超过多少毫秒就自动整个页面重新加载。
然后我把需要pjax刷新的地方用一个id为pjax的div包括起来就行了。
加载动画我用的是nprogress,按照github的说明引入js和css,然后加上两句代码即可:
$(document).on('pjax:start', function() { NProgress.start(); });
$(document).on('pjax:end', function() { NProgress.done(); });
我的整个pjax代码如下:
<script>
$(document).pjax('a[href^="<?php Helper::options()->siteUrl()?>"]:not(a[target="_blank"], a[no-pjax])', {
container: '#pjax',
fragment: '#pjax',
timeout: 8000
})
$(document).on('pjax:start', function() { NProgress.start(); });
$(document).on('pjax:end', function() { NProgress.done(); });
</script>
bug的解决
目录和公式的js失效
因为自己懒得再专门给他们封装和函数然后回调,所以我就很暴力的把它们写在了pjax的div里面。
评论失效
typecho的反垃圾保护需要用到ajax获取评论,与pjax冲突,在设置里关掉即可。
代码高亮失效
这个应该是最难解决的一个问题了,不管是写在div里面还是回调,都会失效。
搜索了半天终于找到了解决方案:https://vps.fubi.hk/foreshadowingvps/zhishiku/20181025/6234.html
我的解决代码如下:
<script>
function loadscript(url, callback) {
var script = document.createElement("script")
script.type = "text/javascript";
if (script.readyState) {
script.onreadystatechange = function () {
if (script.readyState == "loaded" || script.readyState == "complete") {
script.onreadystatechange = null;
callback();
}
};
} else {
script.onload = function () {
callback();
};
}
script.src = url;
document.getElementsByTagName("head")[0].appendChild(script);
}
loadscript('/usr/plugins/CodeStyle/markdown/highlight.pack.js', function () {
hljs.initHighlighting();
});
</script>
您看看
现在应该好了,您试试?
%%% TQL
准备把自己的博客的wordpress删了,竟然连markdown都不支持
改用您正在使用的Typecho
qwq
(所以我到底想要表达什么)
wordpress似乎是可以通过插件兹磁md的吧
我主要是觉得wordpress太臃肿了,有些时候改些东西不好改
还有您的博客似乎访问不了
出大锅了
怎么搞都是404或403
nginx出锅了 太吓人了 = =
目前正在重装VPS = =
伪静态的锅,正在修 = =
祝您RP++
高亮代码失效问题得到了解决
这个Pjax搞得我心好累