X.D 笔记X.D 笔记

博客工具历史小记

博客工具历史小记

省时总结

博客小改变:总结信息直接写在文章最前面。不看明细则无需往下读,为所有人省点时间

WordPressHexoGatsby
技术关键字php mysqlnodenode React GraphQL
网站服务动态纯静态纯静态 同时支持动态
内容更新网页编写发布手动上传生成物手动上传生成物
网站更新一般为FTPftp/命令行/ci 均可ftp/命令行/ci 均可
写文章网页编辑器本地编辑本地编辑
编写格式类Word.md.md, .mdx, React
插件方便,非常多比较方便,很多较多,但非都适合于博客
皮肤方便,非常多比较方便,很多不方便,少
HMR
折腾度轻度,点网页中度:手动档插件与皮肤重度:大概率需要写代码
扩展灵活度比较灵活文档较差,不太灵活非常灵活,NodeJS + GraphQL

正式开始

又做了一次工具党,换了个博客软件,之前使用的Hexo已经不那么好用了,虽然有个Hugo也很火,但只能算平替,价值有限。

考虑过NextJS,也有不少的博客架子,但感觉NextJS在纯静态生成上发力不足。偶然看到了发力在静态内容生成上的Gatbsy, 简单尝试了一下,就是它了!

加上自己略懂一点前端技术,所以就自己折腾了,净时间投入大概30-40小时之间吧,也不完全浪费,因为顺便学习了下 TailwindCSS。(其实之前折腾 WP 和 Hexo总浪费时间也不少。)

WordPress 阶段

十几年前刚开始写博客时,WordPress就是博客的代名词,不止于此,就连很多非博客类型的网站都基于WordPress开发!

那时候是虚拟主机的时代,基本上所有主机服务商管理面板上都集成了安装工具,想上线一个WP网站,点点鼠标就行,很适合没有任何技术的小白。

加之WP皮肤、插件生态丰富,想要的功能和样式直接在后面就可以直接安装。而且文档也不错,会一点技术自行扩展也比较容易,看样子,WordPress几乎已经将博客做到了尽头。

但后面情况发生了变化,让 WordPress 本有的一些先天缺点放大,特别是对程序员群体来说,很难忍受。

  1. 2010年后,Markdown开始风靡,当时 MD 编辑器大爆发,体验一个比一个好,WP的在线编辑器瞬间像是老古董了。
  2. 数据不好管理,WP站点总是要折腾代码/文章数据的同步方案,我的博客就因一次小事件,损失了不少文章。
  3. 云服务慢慢在干掉虚拟主机,而且很多云存储基本上是免费,配备CDN加速,空间也大(一般虚拟主机低档也就100M),特别适合放纯表态网站。

Hexo 阶段

看上去并没什么短板的 WordPress 有点根不上时代了,2012年,Github出品了 Github PagesJekyll,完美解决了以上问题,所有数据都在 Git仓库,只要本地编辑好后,push一下,就可以自动更新网站了,而且,完全免费。

但是,Jekyll 比较简陋,功能、皮肤、插件等生态都不丰富,使用起来也需要折腾不少东西,直到Hexo横空出世。

Hexo是一个基本的内容引擎,根据MarkDown文件生成静态站点,基于这个引擎,官方出了不少皮肤和插件,虽然不如WP,但做为博客使用已经够用,基本安装配置好,就写文章就行了。

2016年时,我从WP换到了Hexo,把格式转换,图片下载后,感觉很爽,告别了数据库,安全感也提升了。

当然纯静态并不是优点,意味着网站不能有评论,不能有针对UA的一些优化了,插件也只能解决部分问题。

多年之后,我觉得Hexo也并不好用了,主要是:

  1. 图片不好管理,虽然有些插件能帮忙,但非常别扭。
  2. 不支持HMR,时代在变化,用过HMR表示回不去,不支持就别扭。
  3. 文档较差,支持的模板语言都比较奇怪,有时想查看资料,看到 Hexo 的官方文档都需要来回脑补。

HMR说明 : Hot Module Replacement / 模块热更新

当模块有变化时,无需完全重新加载,直接在网页上变化。

对于博客来说,是一个用了就回不去的特性(双屏工作者)。

https://webpack.js.org/concepts/hot-module-replacement/

Gatsby 阶段

其实支持HMR的工具也有很多,但这类已经离博客是越来越远了,由于我自己也略懂点代码,加上对Hexo的不满,找个现成的架子再改一下,搞个简单的博客系统也算不上太费事。

其中NextJS就是其中佼佼者,但并不想太深入学习,直到看到了这个Gatbsy!

相对于其它框架,Gatbsy使用GrpahQL!也就是说,如果想自行扩展功能、差件,基本不用去查文档了,所有的内容信息,在GrpahQL查询页一榄无余。

相对于Hexo,除了 HMR+ GrpahQL外,还支持 mdx

MDX : https://mdxjs.com/

Markdown的升级版,支持在 Markdown 中直接运行代码段并显示结果

对于 需要演示前端代码运行,或者展示一些特内容的博客来说,是一个非常实用的功能。

MDX简单演示

MDX演示

点下面按钮

转动动画

对于Hexo的诸多缺点,在Gatbsy中已经不是问题,如文件管理,图片处理等,Gatbsy甚至可以只做为写做工具使用,拿WordPress或其它CMS系统做为服务器,享受双重好处。

唯一不好的地方就是仅提供了基础的工具,虽然有很多开源的Starter项目进行了完善,但使用起来需要一定技术和时间进行自定义的改造。