Hexo安裝心得

05-12-2017

前言

一開始原本打算使用wordpress,評估後覺得wordpress,運行成本跟後續維護上比較高,至於免費blog不考慮,雖然有些免費的blog可以幫忙處理SEO,但對我來說這裡就是一個紀錄技術的地方,所以在google上找了一些方案,發現對岸的不少人使用Hexo架站,而且可以跟github配合,再加上之前申請github都沒有使用,乾脆選Hexo+github作為blog,順便練習git,安裝過程不難,這邊紀錄作為blog的第一篇文章。

安裝Hexo

Hexo基於Node.js開發,作者是台灣人(tommy351 ),詳細介紹請參考這邊

我的搭建環境(mac系統下):

node: v6.9.1
git: v2.9.2

  • node.js + npm
  • github帳號 + 創建倉庫
  • 安裝hexo
  • 部署至github

安裝node.js

下載node.js有不同的方法,我個人是到node.js官網下載,直接安裝到電腦上;到官網下載安裝檔好處是不用另外安裝npm,node.js安裝檔已將npm包含在內,安裝的介面如圖所示:

另一種方法使用brew下載安裝,我沒有使用brew安裝,請自行google查看安裝方法,這邊不做說明。

Node.js install

Node.js installation successfully

安裝完畢,開啟terminal測試是否安裝成功,安裝成功會顯示版本

1
2
3
4
5
$ node -v
v6.9.1

$ npm -v
3.10.8

github帳號

已有帳號的可以直接略過

1.到github官網:https://github.com/

2.填寫相關註冊資料,填寫完之後點擊Sign up for GitHub按鈕,一般選擇免費的部分,有需求的人也可以付費。

github

創建倉庫

登入github帳號,創建倉庫名稱必須依照 github帳號.github.io ,github規定的格式無法自訂,例如我的格式:jaffe1937.github.io,填寫好相關資料即可以創建
Create repository按鈕。

Create new repository

Create github.io

配置SSH

已配置過可以直接略過

1.不確定是否有ssh keys,打開terminal輸入 $ ls -al ~/.ssh,之前建立的ssh keys如圖所示:

check ssh keys

2.設置username和email:

1
2
$ git config --global user.name "你的 GitHub帳戶名"
$ git config --global user.email "你的 GitHub註冊mail"

3.建立新的ssk keys

1
$ ssh-keygen -t rsa -C "你的 GitHub註冊mail"

出現下面訊息

1
2
3
Generating public/private rsa key pair.

Enter file in which to save the key (/Users/you/.ssh/id_rsa):

一般情況不需要密碼,直接 enter 就好,在本機的用戶資料夾下會有一個新的文件夾.ssh,裡面有剛建立的ssh密鑰,id_rsaid_rsa.pub

id_rsa是私鑰,請妥善保管不要外流,id_rsa.pub是公鑰。

4.把剛剛建立的公鑰加到github,到github頁面,右上角點擊『 Settings 』,在電擊左側的『 SSH and GPG keys 』,然後點擊『 New SSH key 』

github settings

SSH and GPG keys

id_rsa.pub公鑰的內容都複製到Key文字框,點擊Add SSH key。

github ssh id_rsa.pub

5.測試ssh連接

1
$ ssh -T git@github.com

如果出現下邊訊息,請輸入yes後,按下Enter

1
2
3
The authenticity of host 'github.com (207.97.227.239)' can't be established. 
RSA key fingerprint is 17:24:ac:a5:76:28:24:36:62:1b:36:4d:eb:df:a6:45.
Are you sure you want to continue connecting (yes/no)?

顯示如下的訊息,則代表連接成功

1
Hi, 用户名/用户名.github.io! You've successfully authenticated, but GitHub does notprovide shell access.

安裝hexo

1.安裝hexo
請確認已安裝node.js,如果沒有安裝請先安裝node.js。

1
sudo npm install hexo-cli -g

安裝時使用npm install hexo-cli -g報錯,因為權限不足所以才會報錯,只需要加上sudo即可解決。

2.初始化hexo

1
hexo init

3.安裝依賴

1
npm install

4.啟動hexo
hexo server

啟動之後,開啟瀏覽器在網址列輸入:http://localhost:4000,會看到Hexo預設頁面。

建立新文章

1.新建文章

1
hexo new <title>

hexo資料夾下的source_posts子資料夾,會建立一個『 title.md 』的文件,如果要刪除,直接刪除此資料夾下對應的文件。

2.生成靜態頁面

1
hexo generate

生成的靜態頁面會在public資料夾。

3.清除生成內容

1
hexo clean

執行此命令會刪除public資料夾下的所有內容。

4.部署hexo

1
hexo deploy

此命令會將hexo的靜態內容,部署至github倉庫中。

部署至github

1.編輯配置檔
使用自己慣用的編輯器打開hexo配置檔_config.yml,找到如下的內容:

1
2
3
4
# Deployment
## Docs: https://hexo.io/docs/deployment.html
deploy:
type:

加入github倉庫資訊,參考如下:

1
2
3
4
5
6
# Deployment
## Docs: https://hexo.io/docs/deployment.html
deploy:
type: git
repo: git@github.com:jaffe1937/jaffe1937.github.io.git #github倉庫地址
branch: master #github分支

2.安裝git外掛
沒有安裝外掛,直接部署會報錯,安裝後再重新部署一次就可以了。

1
sudo npm install hexo-deployer-git --save

3.部署至github
沒特別的情況,通常就可以部署到github,透過 http://<帳號名>.github.io 查看。

1
hexo deploy

hexo命令縮寫

1
2
3
4
5
6
7
hexo g:hexo generate

hexo c:hexo clean

hexo s:hexo server

hexo d:hexo deploy

hexo命令組合

1
2
3
hexo clean && hexo g -s,清除、生成、啟動

hexo clean && hexo g -d,清除、生成、部署

建立時踩到的坑

1.使用npm install hexo-cli -g無權限寫入,後來發現只要前面加sudo就可以解決

2.無法部署到github
執行這串命令時,$ npm install hexo-deployer-git --save,前面加了sudo還是報錯,google找到一篇文章提醒,這串命令必須進到hexo目錄下執行,才解決部署的問題。

參考文章:

http://www.cnblogs.com/liulangmao/p/4323064.html
http://www.jianshu.com/p/f4cc5866946b
http://www.aliengu.com/archives/1630