使用Github和Hexo写博客

曾经一度多次尝试过在github上写博客,包括使用hexo,后来不知不觉就冷却了,那是在换电脑之前。今天又心血来潮,又把这个流程捡起来,遇到了些问题,记录下。

前提:

  • 有个github账号
  • 安装 nodejs,git
  • 有个shell环境

安装 hexo

1
2
npm install hexo-cli -g
npm install hexo --save

创建一个文件夹,进入执行hexo init,然后会生成一些hexo的模板文件

运行本地的hexo server,在浏览器访问localhost:4000可以看到一个demo

然后就需要把hexo生成的静态文件托管到github中,在github中new一个vonzhou.github.io的仓库(vonzhou是我的用户名)

hexo g会在public目录下生成所有的静态文件,手动push到vonzhou.github.io,然后访问浏览器vonzhou.github.io可以看到OK了。但是这样每次很耗时。所以急需自动部署。

hexo工作目录下生成的_conifg.yml是一些配置,其中可以配置deploy的策略,如下:

1
2
3
4
deploy:
type: git
repo: git@github.com:vonzhou/vonzhou.github.io.git
branch: master

然后继hexo g生成所需的静态文件后,可以运行 hexo d进行自动部署到对应的仓库,这里需要安装插件:

1
npm install hexo-deployer-git --save

然后出现问题 “FATAL Permission denied (publickey)”,需要生成SSH key

1
ssh-keygen -t rsa -C "your_email@example.com"

我设置的密码和github登录密码一样,然后将~/.ssh/id_rsa.pub文件中的内容拷贝,进入github的setting中设置到SSH Key中。

然后,ssh一下github,OK后,hexo d就妥妥的了。

1
2
3
4
$ ssh -T git@github.com
Warning: Permanently added the RSA host key for IP address '192.30.252.123' to the list of known hosts.
Identity added: /Users/vonzhou/.ssh/id_rsa ((null))
Hi vonzhou! You've successfully authenticated, but GitHub does not provide shell access.

最后还出现了一个问题“FATAL EACCES: permission denied, unlink ‘/Users/vonzhou/Workspace/hexo/.deploy_git/css/style.css’”,使用sudo hexo d就好了。