今天折腾了很多关于 Jekyll 的东西,甚至为了看看是不是能把主题包里多余的文件去掉在我电脑的 Win7 系统里装了 Nodejs + Bower, 结果反正是不太好。 我先整理整理思绪。

在一开始确定使用 Jekyll 之后对我来说就意味着要对这个 blog 的样式按我的喜好进行全面掌控。 是的这是个很不好的习惯。 算下来用 blog 来做写作的载体断断续续也有十年了,从最早的网易博客到微软的 Live Spaces 到 QQ 空间到 Blogbus(博客大巴) 到 WordPress 到各种各样的空间能数出不下二十种来,其实大量的时间都是花在了折腾模板啊自定义代码啊这些东西上面,大大压缩了真正沉淀心情思考与写作的时间。 就如同我目前的记录都只是限于这个服务本身,对于我要用它干什么我要达成怎样的目标,具体怎么实现我的目标反而成了次要的事情。 我知道折腾能让我获得知识和经验, 但是我现在更想要对我来说更重要的知识了。

能够使这次的折腾变得有价值的,当然是形成让更多人能重复利用甚至以此为基础发展得更好的东西。 我观察了好几个流行的或者设计很好的 Jekyll 主题,发现这些主题本身都做得不错,但是如果要进行定制的话就要对主题的结构啊资源啊进行比较长时间的研究和修改。 当然也可能是我理解能力比较差或者耐心没那么好, 这里就要说到导致我部署了 Nodejs&Bower 的一个主题了:

预览 项目

整个项目只有一个名字 “Material Design for Jekyll using Polymer”, 预览内容也很简单,看上去干干净净直接拿来就能用是吧? 看官您想得太简单了, 这个 repo 整个是有超过 1400 个文件的。 我还真的孤陋寡闻没见过一个空白博客有一千多个文件的。 WordPress 什么的是很大文件很多可是人家是后台程序啊, 一个生成静态文件的引擎没事要爬多久能把文件解析完? 是 Polymer 是特点就是组件化没错,问题是组件化的最大优点不应该是我用不到的组件我可以去掉么? 于是我开始研究怎么样获得我想要的没有多余文件的主题。

一开始我把 _config.yml 配置好之后就跑到 /bower_components 把感觉用不到的各种文件删了一通,然后发现里面竟然还有各种 test、 unit test 之类的目录,我就开了一下脑洞: 既然这是跟 Bower 有关的,到处都是 Bower 说不定 Bower 能告诉我哪些东西我这用到了没用到的它会帮我干掉,原作者是好心把所有组件放进来给我, 让我可以往主题里加入新组件啊! 事实证明我还是太天真了,经过 Nodejs 和 Bower 的全局部署,经过研究了一遍文档和网路上的教程,经过用 Bower 从头获取主题项目或者安装 Polymer 模块,我确定了主题作者一扶眼镜小键盘一敲嘴角一斜往 repo 里放的就是一整个 Polymer 的项目!!

然后现在我就有了两个选择:

A 分析主题作者在那几个文件里用到了哪些组件然后自己把用不着的去掉。
B 自己结合 Polymer 从头弄一个主题,最好还是弄好了有指引可拓展易维护的。

哦还有一个第三种选择也就是我的选择: 把 A,B 都做一遍。 于是,现在我在看 Polymer 的文档了。

最后关于 Jekyll 的主题我想推荐一个人的作品: 设计师Michael Rose, GitHub。 他的作品非常有设计感,完整性很强,做的每一套主题都有几百星。 有完整的安装说明甚至还有项目里每一个文件的目录和用途注释。 他还写了一个最简化的模板叫 skinny bones 来让人快速应用到一个 Jekyll 上并且很容易能自行定制。 我没有直接用的原因是他的主题都蛮依赖 font-awesome 字体图标, 国内用户很多会有自定义字体的习惯(例如我), 这样图标显示不正常的情况就会经常出现, 要去掉的话我还不确定会不会有啥别的问题出现。 所以,希望不怕这个问题的有兴趣的人试试。