概述
??上篇文章主要講的是hexo基本配置共虑,里面有許多坑需要補充愧怜,例如:./_config.yml中配置的admin,backup是干嘛的?執(zhí)行hexo b為何發(fā)生錯誤妈拌。
deploy配置
??博客配置完成后如何發(fā)布博客是一個問題,這里使用的是git方式尘分,首先在./_config.yml添加deploy配置項如下:
deploy:
type: git //發(fā)布類型
repo: git@github.com:username/username.github.io.git //對應(yīng)的遠程分支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摹察,生成完畢后倡鲸,在對應(yīng)的目錄(即/c/Users/your username/.ssh/)下會生成兩個文件一個id_rsa_github(私鑰) , id_rsa_github.pub(公鑰) ,在.ssh目錄下創(chuàng)建config文件克滴,添加映射文件如下:
#github
Host github.com //git服務(wù)器域名
HostName github.com //git服務(wù)器域名
PreferredAuthentications publickey
IdentityFile /c/Users/your username/.ssh/id_rsa_github //私鑰位置
user git
打開id_rsa_github.pub復(fù)制 所有內(nèi)容,再github個人中心->ssh key配置中添加一個key偿曙,見內(nèi)容粘貼 進去,以后發(fā)布博客時只需要再命令行輸入hexo d 即可
admin配置
??hexo博客看上去就是一寫文件望忆,無后臺竿秆,及其不方便,admin配置是一個幫助管理hexo博客的本地后臺管理系統(tǒng)幽钢,只能在本地運行
?1.安裝hexo-admin
??切換到博客所在目錄執(zhí)行
//安裝
npm install --save hexo-admin
//運行
hexo s
??在瀏覽器訪問http://localhost:4000/admin,默認是沒有密碼訪問的
??如何設(shè)置密碼呢?
??在./config.yml中添加 admin項[已經(jīng)添加的當(dāng)然不用添加了]蕾羊,內(nèi)容如下:
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(你的密碼));
??這樣就生成了密碼,你可以嘗試學(xué)習(xí)如何使用hexo-admin了
安全問題
??hexo一切都在本地利凑,只有靜態(tài)頁面在github中保存嫌术,如果硬盤壞了,或者需要換電腦的使用就抓瞎了度气,以前的所有文章,主題配置等都沒辦法找回了适荣,基本要重新開始了择示,這時就明白了git的重要性,代碼都在云端汪诉,可以遠程獲取。這里備份代碼使用的是hexo-git-backup插件扒寄,git服務(wù)沒有選用github的(考慮到這種代碼最好保存在私有版本庫中,而github是收費的)迄本,所以選用了OsChina的碼云
?安裝hexo-git-backup
??這里使用的hexo版本是最新的所以直接執(zhí)行以下命令课竣,低版本的請查看官方文檔
npm install hexo-git-backup --save
執(zhí)行成功后在./config.yml 中添加backup配置項,如下
backup:
type: git //類型
repository:
origin: git@gitee.com:your name/xxxxxxxx.git,master //對應(yīng)的遠程分支鏈接
配置完成后需要在碼云中配置ssh key公条,配置過程同上迂曲,這時執(zhí)行hexo b 將會把整個目錄中所有內(nèi)容提交到碼云上,需要時只要拉取碼云上代碼