概述
上篇文章主要讲的是hexo基本配置,里面有许多坑需要补充,例如:./_config.yml中配置的admin,backup是干嘛的?执行hexo b为何发生错误。
deploy配置
博客配置完成后如何发布博客是一个问题,这里使用的是git方式,首先在./_config.yml添加deploy配置项如下:
deploy:
type: git //发布类型
repo: git@github.com:username/username.github.io.git //对应的远程分支url
branch: master
这里需要在github上配置一个ssh key,配置ssh key的方法如下:
在git-bash中输入
ssh-keygen -t rsa -C 登陆账号
这时会提示要在/c/Users/your username/.ssh/id_rsa生成一个文件,最好要自己起个名字,这里用的是id_rsa_github,因为我们也许需要配置多个ssh key,生成完毕后,在对应的目录(即/c/Users/your username/.ssh/)下会生成两个文件一个id_rsa_github(私钥) , id_rsa_github.pub(公钥) ,在.ssh目录下创建config文件,添加映射文件如下:
#github
Host github.com //git服务器域名
HostName github.com //git服务器域名
PreferredAuthentications publickey
IdentityFile /c/Users/your username/.ssh/id_rsa_github //私钥位置
user git
打开id_rsa_github.pub复制 所有内容,再github个人中心->ssh key配置中添加一个key,见内容粘贴 进去,以后发布博客时只需要再命令行输入hexo d 即可
admin配置
hexo博客看上去就是一写文件,无后台,及其不方便,admin配置是一个帮助管理hexo博客的本地后台管理系统,只能在本地运行
1.安装hexo-admin
切换到博客所在目录执行
//安装
npm install --save hexo-admin
//运行
hexo s
在浏览器访问http://localhost:4000/admin,默认是没有密码访问的
如何设置密码呢?
在./config.yml中添加 admin项[已经添加的当然不用添加了],内容如下:
admin:
username: username //用户名
password_hash: password //密码的加密串
secret: xxxxx //用来加密cookie的密码
其中password_hash的生成需要用bcrypt加密,生成方法如下
npm install bcryptjs安装bcryptjs插件
node\\进去node.js命令行
>var bcrypt = require('bcryptjs');
>console.log(bcrypt.hashSync(你的密码));
这样就生成了密码,你可以尝试学习如何使用hexo-admin了
安全问题
hexo一切都在本地,只有静态页面在github中保存,如果硬盘坏了,或者需要换电脑的使用就抓瞎了,以前的所有文章,主题配置等都没办法找回了,基本要重新开始了,这时就明白了git的重要性,代码都在云端,可以远程获取。这里备份代码使用的是hexo-git-backup插件,git服务没有选用github的(考虑到这种代码最好保存在私有版本库中,而github是收费的),所以选用了OsChina的码云
安装hexo-git-backup
这里使用的hexo版本是最新的所以直接执行以下命令,低版本的请查看官方文档
npm install hexo-git-backup --save
执行成功后在./config.yml 中添加backup配置项,如下
backup:
type: git //类型
repository:
origin: git@gitee.com:your name/xxxxxxxx.git,master //对应的远程分支链接
配置完成后需要在码云中配置ssh key,配置过程同上,这时执行hexo b 将会把整个目录中所有内容提交到码云上,需要时只要拉取码云上代码