Permalink
Switch branches/tags
Nothing to show
Find file Copy path
Fetching contributors…
Cannot retrieve contributors at this time
21 lines (12 sloc) 2.78 KB
title date
博客迁移
2016-11-07

受到ewind学长大力安利后,我终于放弃了封闭混乱的WordPress,转投向开放系统的怀抱。总体来说,我对于新的博客架构感到非常满意。

Hexo是一个静态博客系统,它可以接受Markdown书写的内容,对其应用一个模板(我使用的是NexT模板),编译产生一系列静态网页。这使得用户可以轻松地管理自己的文章内容,以及将博客站点发布到任何免费静态页面服务器上。

文章原稿以人类易读的格式作为文件存在是非常有意义的,因为这使得我能进一步开发各种有趣的工具来处理博客。试想一下,为WordPress开发一个“将QQ空间日志自动发布为博客文章”的功能会有多困难?但换作是Hexo的话,只需要生成出Markdown文件后重新编译网站即可,文章管理不再和服务器耦合。

网站变成全静态的,那么动态的内容,如搜索、访客统计、用户注册和登录、评论怎么办呢?其实对于一个博客网站来说,用户机制是没有必要引入的;交互功能完全可以使用“多说”这样的平台来提供(只需要在静态页面中插入外站JS);访客统计亦可用插入外站JS实现;而搜索用现成的搜索引擎永远比自己重做轮子更好——既可以插入其他搜索引擎提供的专用JS代码,亦可用简单的方法:将表单加上 site:0x01.me并提交给搜索引擎即可。

现在,我的所有文章位于GitHub:Smart-Hypercube/0x01.me。由于巧妙选择了引用图片的语法(对于有图片的文章,建立assets文件夹,并用相对路径引用),这些文章中的图片既能被Hexo正确处理,又能被GitHub预览显示出来,可以说GitHub上的效果和博客中没有区别。

每当GitHub的master分支更新,就会触发webhook。在腾讯云主机中有一个Docker容器在监听这个webhook,将会同步最新版本并重新编译。编译的结果会进入一个Docker共享卷,共享给另一个Nginx容器的/var/www/html,它负责提供0x01.me的服务。

曾经用手机小心翼翼地打开WordPress编辑器,滚动半天屏幕来进行编辑的历史应该会一去不复返了。现在的架构可以在任何设备上git clone、编辑、git commitgit push来更新博客,也可以开发各种工具来改善体验(如“自动搬运我的带有特定标签的QQ空间说说”似乎就很吸引人)。此前几个月都没有更新过博客了,想着“一定是因为写博客的工具太难用所以我才会停更”,但愿这个完美的新架构能促使我继续坚持下去吧。