折腾博客

自从去年从Wordpress迁到Typecho之后,博客就逐渐稳定下来,最多平时就做些边边角角的修改。无奈最近多说评论系统突然宣布要关闭,就又不得不好好折腾一番。

替换评论系统

当然第一件事就是替换掉即将要关闭的多说。从2014年建立博客后不久就开始使用多说,直到现在也有三年多了。平心而论,多说是众多评论系统中做的非常不错的一个产品,用户量也应该是最多的一个,只是可能没有盈利吧。其实我觉得可以仿照前段时间为知笔记突然从免费收费的运营模式,如果失败了,再关闭也不迟。当然,这些都不是我应该关心的,我要做的是解决评论的问题(虽然平时也没多少评论...)。

先后尝试了有言、畅言、网易云跟帖等产品,感觉都或多或少的有些让人不满意的地方,其实这样对比了一圈才发现多说真的不错。当然,如果不是因为不可抗拒的原因,Disqus是技术博客最佳的选择,然而在国内却用不了,最后决定还是用原生的评论吧。其实之前就想过将评论转回到本地,只是有两个拦路虎:1. 我这个主题自带的评论样子有些丑,我难以接受,但又不会改。2. 多说里面已有的评论很难无损的导回到本地。但这次没有退路了。最后在大袋鼠的帮助下,还算比较成功的将评论从多说导回到了本地,然后我后台修改了一下数据库,基本上就无损的所有评论导回到本地了。然后花了点时间学习了下前端的一些东西(主要是html、css、js和少量的php),照猫画虎的仿照大袋鼠博客所使用的主题评论样式弄了一个自己觉得还算清爽且好看的评论样式吧。

换回本地评论系统的过程虽然麻烦了一些,但是换回后就一切都在自己的控制范围内了。对于偏技术博客,常用的Markdown语法自然是要支持的,Typecho原生支持评论区使用Markdown和HTML标签,但是需要自己做一些设置和样式的定义。这些折腾完之后,感觉评论系统至此就算告一段落了。

全站Pjax

什么Ajax,Pjax的技术细节我也不是很懂,但是感觉Pjax对于网站的访问速度“提升”还挺明显的,然后就也想搞一个。网上有很多针对Typecho的教程,一般就两类,一种是通过pjax的JS,一种是使用instantclick,后者好像是比较容易,我就采用了后者。改起来也非常的简单,在footer.phpbody标签之前加入类似下面的代码即可:

<!-- 引入instantClick.js快速响应插件 -->
<script src="//cdn.bootcss.com/instantclick/3.0.1/instantclick.min.js"></script>
<script data-no-instant>InstantClick.init();</script>

网上有许多详细的教程,这里我就不赘述了。当然,instantClick实际并没有提高网页的加载速度,只是它会在你鼠标放在链接上但还没有点击的时候就后台开始预加载,给用户的体验就是提升了加载速度。但是也有很多弊端,会导致很多问题,比如和常见的代码统计、代码高亮、MathJax等JS有冲突,而且用了之后还需要关闭掉Typecho自带的防垃圾评论功能,当然很多冲突在网上都可以找到对应的解决方案。但我个人觉得其实很多情况下它的弊大于利,特别是对于经常折腾博客的人,说不定哪天又和你新加的什么东西冲突了。而我最后还选择用的主要原因是我现在已经比较少折腾博客了,而且使用的插件等也比较少,目前遇到的冲突都一一解决了。但是,或许某一天我又会弃用它。

增加评论验证码

为了Pjax,关掉系统自带的防垃圾评论后,果然就收到一些垃圾评论,所以又增加了一个评论验证码的功能。当然防垃圾评论,typecho有许多插件,而且自身带的防垃圾评论功能就挺不错。你可以找一个自己喜欢的。

好吧,也不知道这篇文章写了什么。既然写完了,就发了吧。