聊聊 NexT 主题

NexT 主题 快满一周岁了,值此之际,碎碎念一下(没有干货)。正如我在 V2EX 分享 时的介绍一样,NexT 的前身叫做 Notes。在做 Notes 主题的时候,基于当时的需求出发点,从好听上来讲是简洁,不好听就是简陋(真直接,脸红)。

NexT Theme

Notes 开发于我刚接触 Hexo 时。当时我拥有一个基于 WordPress 的独立博客,这个博客主要用来写比较完整的技术类文章。在拖延症与技术挫的主观加客观因素综合作用下,这个独立博客也是产出寥寥。然而在丑小鸭能变美丽天鹅的唯美段子的安利下,我也是每天勤勤恳恳钻研技术(折腾不休)。每日阅读各路教程,搜索各种解决方案,追根溯源探索背后的原理,企图从根本上回答 “我是谁?我从哪里来?我要到哪里去?” 这类哲学问题。

在探索人生真谛的路上,为了防范捡了芝麻丢了西瓜这种愚蠢的问题,我果断想出一个方法,就是找个东西记下来。为了体现出折腾的本性,云记事本那根本不入法眼(要用也得自己开发,哎哟,很屌哦),然后又毙了 WordPress 独立博客,纯粹因为静态博客很火。那么,说好的以记录为主的目的丢到哪去了呢?

总之,结果是我折腾了 JekyllOctoPress,最后落在 Hexo。作为选择困难户在选择静态生成博客的时候能够如此果断,那必然是因为只能选择会用的… 无论如何,使用 Hexo 还是挺顺手的,这里不得不夸下 Hexo 的整个代码设计很赞。但问题是我用了一圈就没一个对的上眼的主题。我要的其实很简单啊(遇到说这种话的客户,请直接拒绝,不要问我为什么),只要显示文章内容就好了啦,不要侧边栏啦,不要社交啦,最好字体好看点,排版优美点,颜色搭配舒服点,整体大气点,访问速度快一点,动画特效多一点。于是就有了 Notes(果然记录什么的这种事情不重要)。

Notes Theme

嗯,基本上就长这样,明显我自己还是比较好忽悠的,这没有一个点能匹配的上啊!(竟然只有两个 Release,不思上进也得有个度啊)。那么,Notes 使用了 Jade 作为模板语言,其实还是大量参考了 Hexo 自带主题的模板结构,只是从 EJS 做了一次迁移。模仿是学习一件东西的最好开始(我最喜欢这种美丽的借口)。样式预编译语言是 Stylus,小众,我喜欢,尽管坑不少。Notes 里有几个功能在 NexT 中延续了下来。比如说 程序员 最爱的换代码主题,博主最爱的换主题皮肤(可以考虑学 LOL 做皮肤收费)等等一系列功能(其实也只有这两个)。总的来说,作为先锋,Notes 立下了汗马功劳。

一个突然的深夜,在一顿好生虐待键盘后。我来到了阳台烧起一根香,思考着如果把租用虚拟主机的钱用来抽更好点的烟这个疯狂的 idea。为了证明抽烟也可以省钱这个不切实际的想法,我果断停掉了 WordPress 独立博客。然而,在迁移在 WordPress 上原先那些无聊的文章,烦的把租用主机的费用都抽掉了。而 NexT 便是诞生于此之间。

NexT 在 Notes 的基础上做了大量的改动。首先是使用 Swig 将原先的 Jade 模板完全替换掉,对于记忆力不行还很懒的我来说,使用 Swig 还是比较接近 HTML ,好记易用不费力。 然后无聊企图用 Sass 替换 Stylus 没有成功,所以还是 Stylus 继续耀武扬威。之后,在每一个版本中都加入一些常用的功能,让她更普遍化。

在制作 NexT 的过程中,第一要素是保证其易用性。如果一个功能超级炫丽,但难于使用,那宁可不做(真是漂亮的借口)。这一点可以追溯到偶像诗人白居易,他的诗可以通俗到妇孺皆知,确实有一定手段。那么 NexT 目标亦即如此,谨慎对待自己使用都觉得麻烦的功能。比如说,自定义 Icon Font 这个功能,其实我自己都觉得修改很麻烦,所以一直想把这个功能去除掉(在最近的一个版本中,我终于克服拖延症把它给去掉了)。

偶然一次看到了 苹果广告 视频里那个动画效果,羡慕嫉妒爱,于是就谋划着给 NexT 加上动画特效。本着本土流氓也要有国际黑帮气质的精神,我制作(抄袭)了许多个动画效果,后面都回滚掉了,着实可惜,此处没法装逼,自有装逼处。无论如何,结果是 NexT 加上了一些让浏览器抱怨不堪的动画效果,这完全是 VelocityJS 这个动画库的错。

日子就在花式拖延以及不负责任的抓 七星瓢虫 中悄悄流逝。又是一个凉如水的深夜,我把原先 Notes 中替换皮肤 (Scheme)的功能搬过来,并将其流水线化,利于多套 Scheme 的开发。说到 Scheme,基本原理就是给同一套 HTML 结构应用不同的样式,以达到不同的外观。

结合预编译样式语言,理想情况下,只要更改样式变量即可解锁不同的外观(收费皮肤的基本功)。那为什么不分开做成不同的主题呢?因为那不好玩(这逼装的可以)。贪玩的结果就是,三更半夜还在写作业,这是我获得的第一条人生真谛。由于 Scheme 之间需要共用一些内容,包括 HTML,CSS 以及 JavaScript 这三个闻名于世的贱客。这就需要设计一套良好的机制来降低开发与维护的成本,而这正是 NexT 所欠缺的。所以简单来说,三套 Scheme 加上各自的 Mobile 版本,也就意味着一次修改需要测试六个版本。

然后有了 Mist Scheme。如果不是我错觉,这款皮肤更受欢迎(果然收费皮肤有潜在的市场)。作为 NexT 第一款 Scheme,Mist 还是不负所望,如同夏日傍晚操场吹过的凉风,激起了一片裙子,噢,不是,秀发的飞扬(神马牌主题,宅家写博客常备良品)。

尽管没有一台单反设备,但这并不妨碍我想给 NexT 添加优雅地展示图片的想法。而这个过程一直不顺利,因为在易用性上确实很让人却步。遇到不顺的事情,拖延症就发作这种事情我是不会到处乱说的。就在最近,放着一堆 Bugs 没抓的前提下,我又开坑写了一个新的双栏皮肤(说好的暗色 Scheme 呢)。那么,这款皮肤称为 Pisces,目标是清秀。嗯,只能说这么多了,说太多易食言(其实只想到这么多)。

Pisces Preview

就念叨到此吧。前路漫漫,后会有期。