Make My Blog Great Again

最近把博客从Hexo迁到了Hugo。

其实作为静态网页生成器,这两者并没有什么很大的区别,可能只有一些诸如生成速度、学习成本上的差异。然而对于我这种只是需要一个地方记录点不那么重要的文档以防老年痴呆的人来说,Hexo的唯一优势仅仅是有个中文文档。或者换个角度来看,作为一名前端工程师,只要语言是JavaScript就是所谓的“政治正确”。

那么我为什么放弃了Hexo,选择了Hugo呢?答案是,Hexo对强迫症患者太不友好了!

从Linux切换到MacOS下第一个让我不爽的就是Hexo的这个警告信息:

{ [Error: Cannot find module './build/Release/DTraceProviderBindings'] code: 'MODULE_NOT_FOUND' }    
{ [Error: Cannot find module './build/default/DTraceProviderBindings'] code: 'MODULE_NOT_FOUND' }
{ [Error: Cannot find module './build/Debug/DTraceProviderBindings'] code: 'MODULE_NOT_FOUND' }

虽然可以在安装Hexo时加上--no-optional来解决这个问题,但这也意味着以后每一次更新Hexo时都需要加上这个尾巴,如果你不慎忘了它的话,那就只能带上它从头再装一遍了。

Hexo的文件忽略机制也是在处处挑战一个强迫症患者的底线。所有需要被忽略的文件必须在文件名前加一个_(下划线),这点让我抓狂了很长一段时间,至今都没能适应。Hugo可以通过配置文件来指定需要被忽略的文件。

还有一个相当蛋疼的问题源自NodeJS版本的更新。

NodeJS的版本迭代有规律且迅速,Hexo在这方面就显得不那么地及时。这个问题就导致你的电脑里必须同时存在多个版本的NodeJS供正常的开发和Hexo的兼容使用。我之前一直使用n模块进行切换,每次使用Hexo前都需要降低版本。倘若碰上开发和Hexo同时进行的时候,那简直蛋疼无比。在这种情况下还能长期坚持使用Hexo的人要么是特别有耐心,要么就是Hexo有着特别的执着。

最后在Hexo的百般虐待下,我还是选择了生成速度更快、目录结构更加清晰、定制能力更强,当然还有对强迫症患者更友好的Hugo。不过使用后感觉Hexo和Hugo总体上的差别还是不大,或许我更需要的不一定是一个静态网页生成器,而是尝试新事物的新鲜感吧……

正值双十一,这里借用一下川普的名言做一个结尾:“You’re Fired”……哦不,是这句:“Today, Make My Blog Great Again!”

comments powered by Disqus