从 Jekyll 迁移到 Hexo
自上次更新博客以来已超过 2 年,其一是工作太忙,其二主要是因为自己太懒,不过这其间学习非常多的新知识。最近新增了几个项目之后,发现已经太久没更新博客,同时感觉 jekyll 用起来还是不够舒服,经过一番 google,找到 hexo,hexo 原理和 jekyll 差不多,但是代码块高亮直接使用的 markdown 的语法,无需像 jekyll 那样的高亮语法,又找了个简洁的主题 hexo-theme-next, 于是折腾起 hexo 来,至于为什么不去折腾 hugo,主要是因为找了半天主题没找到满意的,遂放弃了。hexo 的使用可以参见官网的步骤,非常的详细,大致记录一下迁移过程。
项目初始化
1 | npm install -g hexo-cli |
配置
完全配置文件可参考官网的文档,一般来说需要改下作者信息,描述等等,默认是使用 landscape 主题,我这里使用的是 hexo-theme-next,参见文档将代码加入 hexo 目录下的 themes
下,修改根目录_config.yml
中的 theme
为 next
即可,next 主题完全配置参见官网文档,需要注意的是 next 默认没有生成 tags
和 categories
的 index 页面,需要自己手动生成:
1 | hexo new page tags |
生成的文件在_posts
下的 tags
和 categories
中,将 type
分别改为 tags
和 categories
即可,后面自动生成。配置好后,可以简单运行下看看效果:
1 | hexo serve |
迁移
由于之前用的是 Jekyll,post 文章的格式为:year-:month-:day-:title.md
,因此 hexo 也采用同样的格式即可,只需将 new_post_name
改为这种格式。将 Jekyll 目录下的_posts
中文章全部 copy 到 hexo 目录下的 source/_posts
中,由于文章是 Markdown 格式,所以基本没有太大改动,我之前使用了 Jekyll 的一个高亮插件,写法与 Markdown 有所区别,只需把这些写法改为 Markdown 的写法即可,然后运行可看到效果。关于文章长度太长,需显示阅读全文
,有两种方式:
- 自动截取
需修改next
主题配置文件中auto_excerpt
为 true,以及截取开始长度(但这种方式不推荐)。 - 手动添加
只需要在每篇 post 中需要截取的地方加入<!-- more -->
即可。
部署
最后部署至 github,hexo 有多种部署方式,可部署至 Git
,Heroku
,Netlify
等等,都有相应部署工具。这里使用 hexo-deployer-git
,需在根目录下加入
1 | npm install hexo-deployer-git --save |
在根目录配置文件中的 deploy
中加入相关配置,然后执行部署
1 | hexo g -d |
注意,Hexo 与 Jekyll 有区别,github 默认在服务器上生成并部署,而 Hexo 需要我们在本地生成好静态文件后再上传,因此,需要分两个分支来存放代码,master 分支放静态文件,另起一个分支(如:source)来存放源码,这里就需要在 deploy 中加入这两个分支的操作:
1 | deploy: |
至此,博客从 Jekll 成功迁移到了 Hexo。