Hexo + GitHub 搭建个人博客及反思
0. 个人需求
偶然读到 使用GitHub和Hexo搭建免费静态Blog 这篇文章就中了 Hexo 的毒,有发现新大陆的欣喜,终于寒假在家用三天时间把欲望化成了成果。
开始的需求是非常模糊的,就像一个暴发户看见别人开一辆靓车,内心涌现「妈的,真好看,我也得搞一辆」。而我到了寒假,成了「时间的暴发户」,开始实施心中朦胧的需求。
直到做到一半,我才明白自己真正想要的是什么。让我明白从一个想法到明确的需求之间,需要阅读大量相关材料,一定的实践和技术积累的。不是我想要一个xxx那么简单的。以下我边实践,边完善的需求与方案表。(括号内为放案)
- 一个终身的域名。(在 GoDaddy 购置 zwb.io 两年,2018年1月到期。)
- 国内、外都可高速稳定解析的 DNS服务器。(使用 DNSPOD)
- 稳定,高速,不被审核的空间。(github + 七牛 待优化)
- 一个自主的博客系统,自主搭建,定制化高,本地 md 文件备份,操作便捷。(Hexo 待优化)
- 简洁优雅的主题 (Maupassant 待完善)
其实,需求具体化就是罗子雄所讲「将一个大问题,细分为一个个可以解决的小问题」。此步骤大体遵循数据流转次序。
域名 ——> DNS解析 ——> 主机 ——> 博客系统 ——> 界面
1. 购买域名
全球最大域名服务商,对比发现,确实便宜啊。godaddy官网
记得搜 「GoDaddy优惠码」,我搜到一优惠30%的码,购买 zwb.io 便宜了近200元。靠谱!
2. 本地安装 hexo
如果不想折腾 「Farbox」 已经满足以上大部分需求,且我已经买了它的服务。最终没有选择他的原因,因为他不是我的,本质上我拿一堆 MD 文件,他的系统帮我做好了一系列之后的事情,这感觉与发博客到「简书」,感觉类似。
「Farbox」很优秀,但 Hexo + Github 更自由。
请参考 Hexo官方文档,个人 Linux 系统安装过程,供参考。
- 搭建环境
$ sudo apt-get install nodejs
$ sudo apt-get install npm
$ sudo apt-get install git
- 安装 Hexo
$ npm install -g hexo-cli
我遇到错误提示:
/usr/bin/env: node: No such file or directory
执行以下命令解决
$ sudo apt-get install nodejs-legacy
- 安装插件可参考
3. github 空间配置
参考:
由于 Github 在国内速度不理想,想利用国内空间服务来加速网站加载速度。本来最理想的方案是:
Gitcafe Pages 服务,可参考 「如何备份Github博客至GitCafe」,可是今天访问 GitCafe 一直显示 500 ,估计是跪了。
一计不成,又生一计。我自己是有国内空间的 TobeWho,我可否启动子域名 blog.tobewho.com ,然后将 zwb.io CNAME 到子域名,国内访问走这条路径,不就提高了访问速度啦!简直被自己的机智打动了。
第一步,阿里免费主机不支持子域名,参考 「通过.htaccess文件将二级域名绑定到子目录」完美解决。
第二步,将子域名绑定到主机,并添加解析。参考 「阿里云虚拟主机绑定二级域名到子目录」 ,完美解决。
第三步,静静期待奇迹的发生。然后看到 阿里云公告,无备案的域名不能接入。计谋扑街了,看来想这么做需要将域名转到 阿里云,并用阿里的空间,备案完成才行。回想备案那复杂的流程,若为自由故,速度也可抛。
心中又生一计。用 「七牛」做图床,加速网络总行吧,参考 「使用七牛作为github博客的图床」。结果七牛认证也需要身份证拍照什么的,看了下蛮简单的,而且「七牛」也提供域名绑定功能,也就是说以后可以将静态网站布置到七牛上,前提是有国内备案。暂时还不考虑,做法可参考 「hexo-qiniu-sync」。
目前的写作流程。
Emacs写作 ——> 简书并加题图 ——> hexo 生成文件 ——> 将「简书」生成图放 hexo/images ——> 修改图片链接到其牛 ——> hexo 提交到 zwb.io
流程貌似复杂,以后再慢慢优化。
4. 域名解析
对比「阿里云解析」与 DNSPOD 发现,还是 DNSPOD 界面友善,功能齐全,可以按国内国外等线路设置不同访问路径,优化线路,还有状态检测等等,测试总体感受胜于 「阿里云解析」。
注意A记录只能填 GitPages ip地址,CNAME 只能填 域名值 如 zwb.io
。
GitPages ip 地址:Tips for configuring an A record with your DNS provider
5. 切换主题
这主题,实在喜欢。暂无简介页和订阅页,待我慢慢完善。
6. 最后
一不小心刚看到 知名主机商Linode被关键字屏蔽,看来在这片土地上,备案才是正确的姿势。
毕竟未来也一定会为阿里云的主机付费,等备案后,hexo 直接 ftp 部署到阿里与七牛好了。把hexo文件直接放在dropbox文件夹,实现国外备份,随时部署。
最后, zwb.io 欢迎您。