在看了大量的搭建个人博客的方案以后,我总结的最佳实践有两个:

  • 用Markdown和文件夹来管理所有的笔记、博客内容
  • 用git来做版本管理

基于这两个最佳实践的原则,我对现有的个人博客搭建的方案整理了一遍,以前用过LiquidLuck,是因为对Python熟悉;后来尝试过一点Hexo,因为是用NodeJS的,但并没有过多尝试,一方面是没有那么多个人需求,只要能生成博客就行,其次是我找到了更省力的部署方式,那就是Github Pages原生支持的Jekyll。

虽然Jekyll用的是Ruby的技术栈,我一点都不了解,但发现扩展网站模板主要靠的是HTML和JS,所以觉得只要改改主题模板,也能做大部分优化。剩下的就是看看有没有合适的jekyll插件来扩展功能就行。

写博客的工具

在找到部署博客的方案以后,我在开始寻找好用的编辑工具,找来找去比较接近的就是开源项目Prose。它能满足一个比较好的目的:

  • 列出所有的github仓库,可以选择编辑任意一文件
  • 提供了针对Markdown和Jekyll优化的所见即所得编辑器(比如说支持front matters)

这两点我觉得与Github Pages可以配合得很好,但还有一个问题是有很多时候想上传一些媒体资源不太方便,插个图片或视频不想直接上传到git仓库上。于是我就想到要能自己定制这个项目,给它扩展功能,开源的Prose项目则非常合适做这个事情,因为我可以简单地fork并开始我的修改。

fork以后的工作

fork了以后,我调研了一下里面的代码,虽然功能不多,但是用的都是很老的Backbone.js技术,ES5标准的JS代码,老旧的gulp和broswerify打包,而且核心代码也已经几年没更新过了,所以我想着既然接过来,不如就大改吧,进行技术更新,改到面目全非以后,我相信它能够接近于更现代的JS代码,潜在项目维护者的群体也会大很多。

所以大概会做以下的一些规划:

  • 更新代码到ES6标准(进度50%)
  • 更新打包工具Parcel(进度100%)
  • 增加静态资源文件hash(进度100%)
  • 重构Backbone项目代码到React框架(10%)

这次项目管理就用issue管理,反正目前只有我一个维护者,等于挖了个坑,有空慢慢填咯。