初衷
这是我的第二个个人网站。建上一个站的时候,还是高中时的某个假期。当时心血来潮,对比了很多服务平台,最后不知为什么,用比较小众的 Farbox 纯傻瓜式地搭了一个叫“果酱日记”的网站。陆陆续续写的一点文章,大部分是生活杂记。如今再回首,读来颇有点中二气息;这些作品经过对失效外链和排版错误的修复,都在本站留有存档。当然,看黑历史什么的自然是要经过密码授权的。
当年建站后不足一年,学业负担日益加重;加之平日并不能很方便地接触到网络,我便渐渐冷落了它。不过,在此期间,它还是完成了某些重要的任务,总算是不负使命。
时至今日,Farbox 早已半死不活,我的大学假期又没有太多的安排,闲着也是闲着,不如再搭个博客,也算是学点前端知识。
不知为何,我总对外界规定的任务提不起太大的兴趣;假如建站成了课程作业,想必我不会有这么大的热情。其实假期要忙起来不难,太多有意义的事铺满了我的大学四年计划表,建站被勉强排在了“既不紧急也不重要”的第四象限里。但我偏偏放下了其他紧急重要的工作,大脑发热一样整日整夜地在电脑前研究。我相信这其中多少有三分钟热度的成分,保不准过了两天就要退烧。但没关系,“罐子”就在这里,狭小而又坚固,随时可以打开,随时等待着我的写作或不写作。这大概就是来自第四象限的从容吧。
Jekyll + GitHub Page 的选择
方便。这是这套方案的最大优点。当初 Farbox 除了同步数据有所欠缺,其他的操作体验可谓是行云流水。当然,那都是直接用造好了的轮子的好处。相比起 WordPress 买 VPS 和域名的麻烦和经济支出,永久免费无限空间无限流量的 GitHub Page 也属于提供了现成的轮子——只是没有贴心到把配置文件都给做成用户界面奉上——对于我这样的轻度用户来说再合适不过了。Jekyll 作为 GitHub 官方支持的主题引擎,体验也是无缝式的,并且页面渲染是在线上完成的,本地环境并非必须,这一点是同类型的 Hexo 所不及的。当然,其实二者各有优劣,Hexo 对插件和中文文档的支持更胜一筹,本地生成 html 的速度也远高于 Jekyll 。我选择 Jekyll ,纯粹是图省事。
然而一顿操作后我才意识到,除非想要改一次页面 commit 一次来看效果,同时让自己的 commit 记录充斥各种垃圾信息(which is 崇尚完美主义的我所绝对不能容忍的事),否则本地预览就是必须的。于是开始环境配置。网上说 Windows 上 Ruby(Jekyll) 的环境安装比 Node.js(Hexo)复杂,其实也仅仅因为 Ruby 最新的 2.5 版本不支持某个依赖包的安装,需要用 2.4 版本(或许还有安装源在国内无法访问的问题,不过我没有遇到,或许是小飞机的功劳)。注意看错误提示,学会搜索,以上都不是什么大问题。
配置好环境就可以挑选喜欢的主题了。本来我选了 Forty 这个相当华丽的主题,但它的功能很少,可修改性极低,并且似乎因为是毛子的作品所以英语文档写得实在是过于简练……在浪费了大量时间试图进行配置之后,我放弃了,找到了国人维护的移植自 Hexo 的功能相当完善的 NexT 。由于中文开发文档和大量针对性教程的存在,配置这个主题就显得舒服多了。虽然不再是华丽风格,而是回归了小清新,但经过配置,各个平台的实际体验都相当不错。
其中《hexo 的 next 主题个性化教程: 打造炫酷网站》一文总结了大量的可扩展内容,但由于作者使用的是 hexo,二者文件结构和语法都有所不同,因此一些功能的移植有一定困难。
经过尝试,我成功移植了大部分功能。其中的坑大部分在 sass 和 styl 文件,以及 html 和 swig 文件的语法区别。值得注意的是,在 html 中,swig 里 if not …==…
的写法是错误的,应该改用 unless…==…
的形式。
除此以外,尽管尽力尝试,但由于二者的文件结构实在有很大区别,作为前端小白的我仍然没有能搞定其中的 post 阴影效果和鼠标点击动画的移植,具体似乎是 styl 和 sass 之间的转换出了问题。
另外,我对无法实现在 index 页面中隐藏部分 post 的功能依然有所困惑。经过对 NexT 主题的几个 GitHub 页面的查找,我找到了一个相关的 issue,不过已经是 2015 年的事了,至今仍未有明确解决。为此我已经提了新的 issue,正在等待开发者的回复。
*更新于 2018-09-13
自己动手改了改模板,在生成静态网页时简单加了 if 判断,现在文章是否在 index 首页、local search 以及 feed 订阅中隐藏,已经全部可以通过页面的头信息(Front-matter)来控制了。另外,对于 sitemap 的排除,jekyll-sitemap 插件提供了 sitemap: false 变量可以直接控制;还可以在 _config.yml 中 写入 front-matter-defaults 来实现批量处理。
写在最后
正如前文所述,如今我的价值体系有所完善,思想更为成熟,也终于有了做一点自己喜欢的事而不顾有什么实际意义的权利。选择建立这样一个地方,没有比这更好的时机了。或许我的网站在未来还会有第三个、第四个版本的更迭,但,很多东西总是不会变的,一如我今日瞥见自己当初字里行间的幼稚和勇气。
愿自己心之所向,无所不成。