折腾了两天,把博客从Jekyll迁移到Hexo,就是现在你看到博客啦!

为什么

Jkelly 是 github 的默认推荐。相对而言,Jekyll 发展较早,相对比较成熟,Hexo 是后起之秀,但是发展迅速。

使用的Jekyll了一小段时间(简单粗暴fork一个顺眼的主题),发现各种不适应(主要是没折腾懂),markdown语法不和谐,配置一头雾水,加载速度缓慢。完全是在增加认知负荷嘛!

这时候想「离」的心已有,经过搜索物色,可替代的博客——Hexo——进入我的垂涎的目光。结果,整个部署下来,两天功夫就熟练掌握了从安装、部署、更新、发布一整套流程,就是你了。

安装&配置

按照官方文档,非常easy得安装成功,还有中文文档,参考详看

值得注意,如今安装都是hexo最新版本(3.2.2),部分配置和旧版略有不同,参考网络其他教程与官网出入时,以官网为主。

按照我内心的预期,一个博客需要包含有:

  • 一个顺眼的主题(切换主题成本不能太高,我花心)
  • 支持中文
  • 有社交评论功能(disqus)
  • 书写方便
  • 发布方便

这么整列一番,工作顺序和侧重也就清晰了。开工!

主题

萝卜青菜,各有所爱。后宫主题库,任你翻牌。

我选择的主题是:Maupassant

安装主题

1
2
3
$ git clone https://github.com/tufu9441/maupassant-hexo.git themes/maupassant
$ npm install hexo-renderer-jade --save
$ npm install hexo-renderer-sass --save

安装好之后,更改Hexo主目录下_config.yml配置文件:

1
2
3
4
# Extensions
## Plugins: https://hexo.io/plugins/
## Themes: https://hexo.io/themes/
theme: maupassant

我这个主题,支持7种语言(查看themes/maupassant/languages/),然,我只爱中文,更改Hexo主目录下_config.yml配置文件:

1
language: zh-CN

完成配置后,执行几个命令就可以看到效果啦

1
2
3
hexo clean # 清除缓存文件 (db.json) 和已生成的静态文件 (public)
hexo generate #生成静态文件
hexo server #启动服务器。默认情况下,访问网址为: http://localhost:4000/

书写博客

创建新文章,可以通过命令和手动方式:

  • 命令,官方文档

  • 手动:直接创建md文件到source/_post/目录下

书写完成后,执行命令:

1
2
hexo g
hexo s

然后通过本地,访问网址为: http://localhost:4000/ 查看。

添加评论系统

非常简单,只需要讲disqus的shortname配置到themes/maupassant/_config.yml:

1
disqus: Linkding ## Your disqus_shortname, e.g. username

完成后,执行命令:

1
2
hexo g
hexo s

然后通过本地,访问网址为: http://localhost:4000/ 查看。

注意:需要翻墙的前提下可以看到disqus的评论栏

发布博客

本地已经搞得差不多啦,怎么发布到github Page呢?一开始我也是愣了半天,搜索了一大轮,终于明白过来了。hexo是通过hexo g生成了public的静态文件目录,将这个目录拷到github你对应的repo目录下就可以发布出来。

建立github Page

GitHub Pages分两种,一种是你的GitHub用户名建立的username.github.io这样的用户&组织页(站),另一种是依附项目的pages,我前面的Jkeyll就是后者。

重建一个以我用户名的repo:Linkding.github.io

然后clone到本地,比如~/linkding.github.io目录
将hexo主目录下的public目录的内容拷贝到~/linkding.github.io/,然后同步到远端,即可通过公网访问博客

1
cp ~/Hexo/public/* ~/linkding.github.io/

但是这样子,似乎比较麻烦呀,有没有一键搞定的方法啊!

Hexo 提供了快速方便的一键部署功能,让您只需一条命令就能将网站部署到服务器上。

Git
安装 hexo-deployer-git。

1
$ npm install hexo-deployer-git --save

前提需要配置ssh-key和github服务器成功通信,此略过,详可参考文末参考文档。

简单几个配置,更改Hexo主目录下_config.yml配置文件:

1
2
3
4
deploy:
type: git
repository: https://github.com/Linkding/linkding.github.io.git
branch: master

执行命令:

1
hexo deploy #hexo d

解决README文件被清除问题

执行完发布命令hexo d后,会将github上README文件给清除掉。参考以下内容后,顺利解决

在hexo主目录下的source下,添加一个README.md文件。

然后,更改Hexo主目录下_config.yml配置文件:

1
2
# Directory
skip_render: README.md

并执行:

1
hexo deploy #hexo d

此问题可以得以解决。

小结

hexo结构清晰,模块完整,而且有很多开路人的成果,避免重复造轮子。

从搭建,安装,部署,发布,只要记住hxeo n g s d四个命令就足够了。

我还嫌不够简便,写了一个小脚本,将这几个命令丢到一起,每次都可以一键完成。

欧耶,收工~

参考文档