部署 Hexo 博客到 Github Pages
Hexo 官方的文档地址:https://hexo.io/docs/github-pages.html 这个文档有一堆问题,评论区有提到。
建议使用 Travis CI 来部署。
创建 Repo 和安装 Hexo
首先创建一个自己用户名的 repo dimpurr.github.io
。
随意要不要 Initialize ,然后把 Hexo 的文件丢进去。 Hexo 自带 .gitignore
可以选 Node 的,记得从里面去掉 public
一行的注释。.gitignore
所以不用选。
如果和我一样还没有安装 Hexo 的话, clone repo 然后去新建 hexo 分支:
1 | yarn global add hexo # npm install -g hexo-cli |
然后编辑 _config.yml
做一些基本设置。
我觉得有必要改的:
1 | language: zh |
记得 push 。
配置 Travis Ci
在 Github 账户上添加 Travis CI : https://github.com/marketplace/travis-ci
选开源 Free 就好。我选了 Only select repositories
,然后添加这个项目。
创建新的 Github Token :https://github.com/settings/tokens/new
理论上只需要 repo 部分权限。存好这个 Token ,关掉网页就再也看不到了。
在 Travis CI 控制面板编辑对应 repo 的环境变量,例如 https://travis-ci.com/github/dimpurr/dimpurr.github.io/settings ,把刚才的 Token 存进 GH_TOKEN
变量。
在 repo 里新建 .travis.yml
文件,内容如下:
1 | sudo: false |
此时就已经可以访问了。该换主题换主题,该加插件加插件,然后开始写文章吧!
吐槽一个,安装了主题之后 yarn fetch 慢死了, Travis CI 又要每次重新 fecth ,还不如手动 hexo generate 呢 ……
绑定域名
在 Github 的 repo setting 里面设置自定义域名之后会在 master 生成一个 CNAME
文件,内容是你绑定的域名,显然这个是会被 Travis CI 覆盖掉的。
所以在 hexo
分支的 source
目录下手动创建这个文件,内容是一行你要绑定的域名。
然后到 DNS 配置中添加对应记录。如果是顶级域名的话:
1 | @ A 192.30.252.153 |
如果是 HTTPS 的话, A 记录指向:
1 | 185.199.108.153 |
不是顶级域名不需要 A 记录。
添加 RSS 插件
https://github.com/hexojs/hexo-generator-feed
1 | yarn add hexo-generator-feed --save |
可用的配置:
1 | feed: |
本地测试和预览
因为 Travis CI 慢死了,以及编辑文章想要看主题效果的时候还是本地预览方便,可以在 public
目录下用 Python 跑一个迷你服务器:
1 | python2 -m SimpleHTTPServer |
然后访问 http://127.0.0.1:8000/ 就好了。
日常使用的流程
1 | hexo new draft PostTitle -s post-slug |