再见WordPress,拥抱Gatsby
用WordPress已有三年之多了,见识到了WP的功能强大和庞大生态,无数强大的插件让WP如虎添翼。不过,在使用的时候也看到了WP的短处。当然没有什么东西是没有缺点的,只是你在乎这些缺点不。
WordPress
结合自己的使用,来谈谈这个老朋友吧。
优势
1. 简单安装,开箱即用
只要有php、mysql、apache的环境(docker更容易),几步就可以搭建个WP博客了。
搭建好后,可以登录后台,即可开启写文章模式,对于不是特别东技术的人来说是很容易的。可视化的操作界面很贴心(5.0升级后界面很不错,可惜我一直停留在4.9.8,只在宣传中见到。。。),后台的设置功能也基本够用(配合主题更好食用)。
2. 生态强大
- WP的问题在百度上基本能搜索到答案。
- 各种款式的主题。
- 强大的插件。
- 稳定的团队维护。
- 大量的使用者。
- ......
3. PHP
我总想着在主题之上增加些自己的想法或者干脆重新写个主题,但是这些基本前提是得掌握一些PHP方面的技能,如果要是大学时代,我还是愿意去研究的。毕竟都工作这么多年了,现在学PHP是不是有点晚了?
缺点
1. 慢、笨重
php作为后端本身就慢些。
由于本人的站点一直在国外,所以网速和延迟一直是个大问题,在插件装的较多且网延迟较大时,经常出现500之类的错误。登录后丢响应导致无法跳转首页的问题也是经常性的。
WP需要配数据库,当然也是性能损失的一点,但动态博客数据库肯定得有。
CDN、静态数据缓存、数据库缓存依旧不能让WP轻盈起来。
2. 备份问题
WP下有好些个备份插件,免费版的基本功能都有。但是由于本人想异地备份,另一台虚机优势不可少的。
3. 官方不支持markdown
WP5.0了依旧不支持markdown(插件支持,但多多少少用的不自在)。
其他系统
其实很早就在物色其他系统了,不过没有一款能让我下定决定转移,因为怕又是一个坑,无限折腾。
typecho
这款国人开发的博客系统在轻盈性方面比笨重的WP表现得更好,他也支持markdown。但是没找到看得上的主题和插件,相对WP还是不足的。。。况且作者有一年多未更新了(最近有更新)。还有就是PHP写的啊,难搞。。
ghost
这个号称要干倒WP的系统,后端基于nodejs(大拇指),对于我这个像深入学学node的人来说是相当不粗的,这种情况下,写主题也不成问题。可惜的是页面是 Handlebars 模板,作为一个前端人员,怎么能还停留在这玩意上呢?好歹也得三大框架的把。
自建
那就用node搭建个博客呗?
起初好好的,后期陷入,vue和react来回切换的问题中(受个人技术栈选择问题影响),以及UI框架的来回切换,并且本人艺术方面有问题,只能欣赏好坏,不能自己设计个美的界面,后放弃。
折腾完动态博客,逐渐向慢慢兴起的静态博客靠齐。
hexo
依旧是字符串模板的原因,再加上很奇怪的文章放置规则,虽然自己也写了个简单的主题,但是没兴趣继续完善下去了。
vuePress
比较像是记录文档的,界面风格固定,不太容易修改。不过支持vue组件的展示这点很不错。
gitbook
风格更像是记录文档的,而且顶部没有menu切换页面,只能通过左侧tree来切换,或者说更像一本书而已。
Gatsby
在简单的尝试到搭建完成本系统,我来说说自己的看法。
1. 基于React
数据管理没必要用,router已经集成,不过能占到三大框架的边就用把。。。
当然,react中的一些插件基本都可以使用。
2. 高度自定义
有相当一部分主题和插件。如果你不愿意用,那么就可以用react来写一套自己喜欢的主题了。
你想用哪个UI库看你喜欢,若是想加一些奇怪的组件也可以。
Gatsby是利用 gatsby-source-filesystem 插件去读取md文件的,你可以随便瞎组合文件,甚至嵌套多层文件夹,当然文章目录位置也由你定。
若md文件渲染出的页面不满意,那就自己用react写个吧,在 src/page 下就可以写独立的页面(多页面风格不一致也没问题)。
3. 简单的后端
后端是基于Graphql的,开发起来也算是便捷吧,对于我这种不想大规模折腾后端的也是挺满意的。
4. 静态化
run build时,会将这些页面都转化成html,性能不打折扣。
5. md + github + jenkins
markdown的记录方式很舒服,配上github后,备份的问题也解决了。在套上Jenkins的自动化编译,发布也解决了,完美。
总结
对于我这种特别想折腾前端页面,但又愿意多关注后端的人来说,Gatsby是相当不错的。
就目前的使用来说,没有不满意的地方,nice。