最近公司项目不是很忙,所以想把自己的博客好好整整,下面就是我从原先的jekyll迁移的hexo的整个过程的记录以及中间遇到的一些问题。
安装Hexo
打开终端,执行命令:
1 | npm install -g hexo-cli |
然后随便找个文件夹,执行命令:
1 | hexo init . |
这个过程可能有些长,因为要安装很多依赖的包。
执行完后,就会在这个文件中生成一些文件,如下图,这就是Hexo的主目录。然后执行命令
1 | npm install |
这个命令一定要执行,否则后面在启动本地服务器预览是会出现“Get 404”错误。
其他还要执行的命令有:
1 | npm install hexo-renderer-ejs --save |
这样就完成了安装,然后执行命令:
1 | hexo server |
然后打开浏览器,输入http://127.0.0.1:4000/ ,就可以看到预览界面
配置主题
我选的是NexT主题,这个主题比较美观,而且最重要的是文档齐全,在这里可以找到关于这个主题的所有内容。
安装主题的方法很简单,在hexo主目录执行命令:
1 | git clone https://github.com/iissnan/hexo-theme-next themes/next |
然后修改配置文件_config.yml,添加一下内容:
1 | theme: next |
然后开启预览,就可以看到主题已经换成了新的主题
更详细的配置可以参考这个主题的文档。
数据迁移
Hexo的数据迁移很简单,只要要以前jekyll主目录下的_post
文件夹里的所有文件拷贝到hexo目录下的source/_posts
,然后在配置文件_config.yml中添加如下内容:
1 | new_post_name: :year-:month-:day-:title.md |
这样就完成了数据迁移。其他框架的博客迁移到hexo可以参看官方文档
这里要注意的是,之前在jekyll中,代码块是这样的格式:
1 | {% highlight objectiveC linenos %} |
但是在hexo不支持这样的格式,所以要全部替换成标准的Markdown代码块,这是比较蛋疼的地方。
做完这些之后,再次打开预览,就可以看到原来的博客啦。
部署
先安装hexo-deployer-git,执行命令:
1 | npm install hexo-deployer-git --save |
然后在Github上创建一个仓库,然后开启Github Pages功能,可以参考这篇文章
然后修改配置文件_config.yml,添加如下内容:
1 | deploy: |
然后执行命令
1 | hexo deploy |
这样就把博客部署到了github上
绑定独立域名
到万网购买了一个独立域名(后来才知道DNSPod的解析速度更快一些,后悔了),然后在hexo主目录下的source文件夹中创建一个名为CNAME的文件,里面填写你的独立域名,如下:
然后重新部署一下,这样这个CNAME就会上传到Github仓库的根目录下。如下:
这里一定要注意,要把CNAME放在source文件夹里,如果直接从Github创建CNAME,重新部署博客后,会删掉添加的CNAME。
然后就是添加域名解析,打开万网域名管理后台,添加如下解析
1 | 192.30.252.153 |
这两个IP是Github的IP,设置完后,过一会,就可以用独立域名访问了。
这样一个Hexo博客就搭建完成了。
写博客
Hexo自带命令可以生成生成一篇新的博客,如下:
1 | hexo new post "helloworld" |
然后就会生成一篇名为”helloworld”的博客。
写完博客后,然后执行下面三条命令发布博客。
1 | hexo clean |
这里可以写一个脚本,一次性执行这三条命令。
遇到的问题
- 执行hexo deploy后,CNAME和README.md文件消失
解决方法,把这两个文件放在source目录下,这样在部署时就会把这两个文件也放到github的根目录下
- 执行hexo deploy后,README.md被渲染成了README.html
解决方法,在_config.yml中添加如下内容即可:
1 | skip_render: README.md |
以上就是我从Jekyll迁移到Hexo的整个过程。
参考资料: