将博客从Jekyll迁移至Hexo
动机
之前很久没有更新自己的博客了,想着每一年都应该写点东西记录自己的成长。于是在2018
年第一季度快要过去的时候,打开了自己那个风格早就过时的blog
准备重构。先简单介绍一下迁移前后的框架:
jekyll: 一个基于
ruby
的博客框架,不会在本地渲染静态页面,需要将整个页面上传至github.io
,由github.io
去渲染。
Hexo: 由node.js
构建的博客框架,会在本地渲染静态页面,再上传到github.io
上。
至于为什么要换框架,原因很简单就是我在配置Ruby
环境的过程遇到了一个名为nokogiri
的库安装一直不成功的问题。使用了gem
和boundle
安装都不行,这就导致了我无法在本机启动jekyll
服务器来预览,这个问题还是比较麻烦的。自己平时也很少用ruby
来进行开发,因此不太想把精力虚耗在这些事情上面,于是就果断的放弃选择了Hexo
。
Hexo配置
比较
Hexo
和jekyll
的文档就能明显感觉到Hexo
比jekyll
更加现代,而且Hexo
的中文文档也比较完善。
环境配置
基于node.js
肯定需要有node.js
,git
更应该是开发人员的标准配置了。
基本操作命令
init
1 | hexo init <name> //建立站点 |
建完文件结构如下:
1 | . |
new
1 | hexo new <article_name> // 生成新的文章 |
generate
1 | hexo generate || hexo g //生成静态文件,在你的目录下会多出一个public文件夹 |
server
1 | hexo server // 在本地启动预览,默认访问地址为http://localhost:4000 |
deploy
1 | hexo deploy || hexo d //启动部署 |
由于我使用的github.io
来搭建我的博客,因此我的部署位置就在git
上,需要使用hexo-deploy-git
工具1
npm install hexo-deploy-git
至于其他发布平台应该也有对应的工具。
安装完成之后在_config.yml
中修改参数: 1
2
3deploy:
- type: git
repo: <your repo>
注:YAML
和python
都是严格要求缩进的,所以你懂得……
迁移
由于是直接从jekyll
迁移过来,之前的一整套架构都没有保留就把Markdown
写的文章复制过来了。修改了_config.yml
中的new_post_name
参数:
1 | new_post_name: :year-:month-:day-:title.md |
这也是Hexo
推荐的命名方式,加上时间比较方便归档及排序。
其他一些tips
上述过程熟悉之后,就可以正常的写blog
发布了。我个人是一个崇尚极简生活的人,博客基本的发布表达功能完善之后就不太想去折腾什么评论之类的功能了。仅仅留下了一个邮箱作为自己的联系方式,交流的方式有很多种,以前在一些内容发布平台也通过评论结识了一些朋友。但个人博客我还是倾向于做成一个人的树洞空间,能顺便帮助到别人也是一件好事情。
字体设置
在Hexo
文件夹下的_config.yml
文件里面有一个font
字段用来设置字体,可是尝试了几次之后发现并没有生效。
在<hexo_file>/themes/<your_theme>/css/_variables/base.style
设置就可以成功
CNAME消失的问题
在jekyll
框架下是将整个本地文件都同步到github.io
上,hexo
是在本地渲染打包了一个public
文件,将public
文件上传到了github.io
上。因此,CNNAME
文件一定要放在source
文件下才不会在发布的时候被删除掉。
写在最后
hexo
有很多可以个性化的地方,不过我认为目前的状态已经可以满足我个人的需求了。要是再年轻几年应该还是会花大精力去折腾的,现在就感觉工具都差不多,重要的是美观和内容质量。
最近的工作离之前的iOS
开发有点远,不过现在前端开发已经进入大前端时代了,不会点js
框架感觉真的要掉队了哈哈。
参考资料
- Hexo官方文档:https://hexo.io/zh-cn/
- NexT主题文档:https://theme-next.iissnan.com/getting-started.html
- 部分文章:https://segmentfault.com/a/1190000009544924等等……