更新:很遗憾,jsDelivr目前(2021-12-22)失去了中国大陆地区的区域CDN,将使用就近的CDN代替。
独立博客的一个十分重要的问题就是图片等静态资源的加载速度,这对于访问博客的体验而言十分的重要,尤其在中国,如果使用国外的服务器而域名也没有备案的话,图片的加载速度能够让人怀疑人生。
而jsDelivr是一个著名的开源CDN项目,它闻名于免费的javascript CDN,全球部署尤其是在中国也有备案的站点。但是少有人了解它提供的其他免费服务,其中包括一项是对Github仓库的CDN加速,而这便可用来作为我们博客的图片CDN。
2020-07-17 更新: 现在推荐所有使用Hexo的人都采用hexo-filter-mathjax插件,支持unicode字符,后端渲染,前端不用外挂CSS样式表和Javascript脚本。如果想找解决方案可以直接阅读"Maxjax 后端渲染"小节。
许许多多的Hexo博客都是Next主题的,而这样的大主题大多封装了Mathjax或Katex等前端渲染工具,配置比较简单。我这个小主题就只能在网上找解决方案了。
现在来总结,其实无非就是两个大方向,前端渲染和后端渲染。其中前端渲染是主流,而绝大部分前端渲染都是用的Mathjax或Katex。
前端渲染的流程是,在生成时Hexo渲染器(如hexo-renderer-pandoc
)首先一轮渲染把Markdown中的Latex代码转换为Mathjax或Katex支持的代码,然后在前端加载html时前端的Javascript脚本就会渲染Latex公式为矢量图形。
可我最后用的是后端渲染,虽然说后端渲染有种种好处,但是我用它的最开始的原因却是我不能把前端渲染的方案做完善,也就是说,我前端方面是个菜狗。
我最早的技术博客在CSDN,CSDN的好处很明显:省事,SEO也做得好;缺点是:界面不够美观、CSDN本身的社区也抄袭成风。
最近突然想重搞一个博客,根据我对自建博客的远古记忆,大部分人用的应该是WordPress,于是我的第一选择也是去用WordPress,但是因为我之前一直没有了解过自建博客,我刚开始甚至不知道WordPress.org和WordPress.com的区别。
一顿搜索后,决定用一个VPS+WordPress搭建自己的博客,并且申请了自己的域名,也就是现在的renzibei.com
将WordPress博客运行起来后,经历了找主题、找插件、做SEO等等过程,发现有一个我怎么也绕不过去的问题,那就是如何将Markdown文件格式的文章直接展示到WordPress中。
WordPress的确有各种各样的Markdown插件,但是对Markdown的支持度都不相同;我个人对Markdown支持的硬性要求是,能够像Typora一样支持Latex公式。但是这些Markdown插件并不能满足我的要求,Latex插件又不能与Markdown插件结合,因此我一度被这个问题困扰了很久,直到我了解了Hexo。