Why Ghost

心水Ghost博客系统很久了,想迁移到Ghost有两个很大的原因:1)之前使用的Wordpress使用的是世界上最好的语言,虽然我对这个没有门第之见,但是对我来说完全inhackable的系统终究不是太好,之前配置也是完全靠谷歌,一旦又出什么问题或者想进一步定制,非常难搞。而Ghost使用NodeJS,某前端开发表示很亲切;2)Ghost可以作为一个仅后端的系统使用,对我来说完全可以做到抛弃内置的handlebars模版,转而写一套单独的前端调用Content API即可。

完全hackable,后台文章管理方便,编辑器对markdown的支持尚可,种种优点使得我决定抛弃了使用两年的Wordpress。

不试试Hugo?

Hugo其实优秀的主题比Ghost要多不少。得益于其属于静态网站生成器一类,有不少大神迁移了Hexo上的优秀主题到Hugo上。Hugo生成很快,目录结构合理,唯一的缺点是不适合懒人(部署不方便)。另一个缺点是,我希望能在任何电脑上,特别是上课随手掏出chromebook的时候,能随意在博客上写点什么。如果使用Hugo之流,你还得在每个地方配置上Go语言环境,从仓库拉取,编辑好再推送上去。

Ghost也不是银弹

很不幸,Ghost也没能解决我全部的需求。

一方面,Ghost的编辑器对Markdown语法的支持仍然残疾。编辑器类似于Notion,但是很多语法在普通block里是无法使用的,甚至**加粗**这些简单的语法。

另一方面,Ghost博客的主题还是太少了。兼具简约和艺术性的主题完全找不到,相比之下Hexo的主题非常多,Wordpress的主题就是浩瀚宇宙了。 现有主题完全不考虑像我这样没有找题图习惯的bloger,空荡荡的首页还是难看了点。

为了解决这个尴尬,我开始着手编写自己的一套博客前端,基于Vue框架做纯前端路由(不靠写博客吃饭,SEO就算了),使用轻巧的Bulma UI复用一些简单的控件。总的来说,相当满意。

正文字体使用开源的思源宋体(Noto Sans SC),兼顾中英文混排的美观和可读性。数学公式使用Katex渲染,代码块使用highlight.js渲染高亮。值得一提的是,Bulma的作者非常傲慢的拒绝对css class进行命名空间管理,导致与Prism.js(另一个代码高亮库)的样式冲突,而Prism.js也没有提供更换类名的接口。最终Bulma和Prism的作者在各自的issue收获了无数个👎,不遵守前端工程化的最佳实践最终损害的是开源社区的活力和贡献质量。

想起来2017年的初春,被百度云惹恼而迁移到了Wordpress,窗外的飞雪还一度让我拿出了相机。当时的我也永远不会想到,两年多后,我既丢了相机,也放弃了Wordpress。