Mac 上搭建基於 Hexo + GitHub 個人博客
環境配置
本人電腦系統:macOS
Node.js
生成靜態頁面。安裝Node.js
Git
用於將本地 Hexo 內容提交到 Github。Xcode自帶Git(前提:macOS已經安裝了Xcode),若沒有,可以參考 Hexo官網上的安裝方法。
安裝 Hexo
當 Node.js 和 Git 都安裝好後,就可以正式安裝 Hexo 了,終端執行如下命令:
$ sudo npm install -g hexo
輸入管理員密碼(Mac 登陸密碼)即可開始安裝。
註:
sudo
:linux系統管理指令
-g
:全局安裝
註意:Hexo官網上的安裝命令是
$npm install -g hexo-cli
,安裝時不要忘記前面加上sudo
,否則會因為權限問題報錯。
初始化
終端cd
到一個你選定的目錄,執行hexo init
命令:
$ hexo init blog
註:blog是你建立的文件夾名稱。
cd
到blog文件夾下,執行如下命令安裝npm
:
$ npm install
執行如下命令,開啟Hexo服務器:
$ hexo s
此時,瀏覽器中打開網址http://localhost:4000,能看到如下頁面:
註:終端使用快捷鍵control + c可關閉Hexo服務器。
本地設置好後,接下來開始關聯GitHub。
關聯GitHub
創建倉庫
登陸你的GitHub帳號,新建倉庫,名為yours github username.github.io
nar1su.github.io
即下圖中1
所示:
註意:圖中
1
處的/
前後nar1su
的拼寫必須一直,否則無法部署Hexo。
本地的blog
文件夾下內容為:
_config.yml
db.json
node_modules
package-lock.json
package.json
scaffolds
source
themes
終端cd
到blog
文件夾下,vim
打開_config.yml
,命令如下:
$ vim _config.yml
打開在最後的部分,修改成下邊的樣子:
deploy:
type: git
repository: https://github.com/nar1su/nar1su.github.io.git
branch: master
你只需要將repository
後的https:~~~
改為你自己的就好。在上圖中2
處獲取。Hexo 3.1.1版本後type:
值為git
註意:配置所有的
_config.yml
文件時(包括theme
文件夾中的_config.yml
),所有的冒號:
後邊都要加一個空格,否則執行hexo
命令時會報錯。
在blog
文件夾目錄下執行生成靜態頁面命令:
$ hexo generate 或者:hexo g
此時若出現如下報錯:
ERROR Local hexo not found in ~/blog
ERROR Try runing: 'npm install hexo --save'
則執行命令:
npm install hexo --save
若無報錯,自行忽略此步驟
再執行配置命令:
$ hexo deploy 或者:hexo d
註意:若執行命令
hexo deploy
仍然報錯:ERROR Deployer not found: git // 無法連接git或找不到git
無法連接git或找不到git,則執行如下命令來安裝hexo-deployer-git:
$ npm install hexo-deployer-git --save
再次執行
hexo generate
和hexo deploy
命令。
若你未關聯GitHub,則執行hexo deploy
命令時終端會提示你輸入GitHub的用戶名和密碼,即
Username for 'https://github.com':
Password for 'https://github.com':
hexo deploy
命令執行成功之後,瀏覽器中打開網址https://nar1su.github.io(將nar1su
換成你的用戶名)能看到和先前在本地打開http://localhost:4000時一樣的頁面。
為避免每次輸入GitHub用戶名和密碼的麻煩,可參照下面4方法
添加ssh keys到GitHub
檢查SSH keys是否存在GitHub
執行如下命令,檢查SSH keys是否存在。
$ ls -al ~/.ssh
如果有文件id_rsa.pub
或id_rsa
,則直接進入步驟4.3將SSH key添加到GitHub中,否則執行4.2生成SSH key。
生成ssh key
執行如下命令生成public/private rsa key pair,註意將[email protected]換成你自己註冊GitHub的郵箱地址。
$ ssh-keygen -t rsa -C "[email protected]"
默認會在相應路徑下(~/.ssh/id_rsa.pub
)生成id_rsa
和id_rsa.pub
兩個文件。
將ssh key添加到GitHub中
在終端使用cat
命令,前往文件夾~/.ssh
查看id_rsa.pub
文件,裏面的信息即為SSH key,將這些信息復制到GitHub的Add SSH key頁面即可。
$ cat ~/.ssh/id_rsa.pub
通過瀏覽器進入個人GitHub網站: GitHub -> Settings -> SSH and GPG keys -> New SSH:
Title 裏任意添加一個標題,將復制的內容粘貼到 key 裏,點擊下方Add key
綠色按鈕即可。
發布文章
終端cd
到blog
文件夾下,執行如下命令新建文章:
$ hexo new "fileName"
文件名為fileName.md
的文件會建在目錄/blog/source/_posts
下,fileName
是文件名,為方便鏈接文件名不建議命名為漢字。你當然可以用vim來編輯文章。我在用Typora編輯器,所寫即所得,雖然缺點也不少,但書寫基本沒什麽問題。如果你有好用的markdown編輯器,請推薦我,感激不盡!
文章編輯完成後,終端cd
到blog
文件夾下,執行如下命令來發布:
$ hexo generate // 生成靜態頁面
$ hexo deploy // 將文章部署到GitHub
至此,macOS上搭建基於GitHub的Hexo博客就完成了。下面的內容是博客的一些個性化設置,如有興趣,請各取所需。
安裝主題(theme)
你可以到Hexo官方主題、有哪些好看的 Hexo 主題?找自己喜歡的主題。這裏以hexo-theme-next為例,終端cd
到blog
目錄下,執行如下命令:
$ git clone https://github.com/iissnan/hexo-theme-next themes/next
配置blog/_config.yml
文件中的theme
字段為next
:
# Extensions
## Plugins: http://hexo.io/plugins/
## Themes: http://hexo.io/themes/
theme: next
編輯完成後,終端cd
到blog
文件夾下,執行如下命令(每次部署文章的步驟)來更新GitHub上的部署:
$ hexo clean // 清除緩存文件(db.json)和已生成的靜態文件(public)
$ hexo generate // 生成靜態頁面
$ hexo deploy // 將修改更新到GitHub
至於修改theme內容,比如:名稱、描述、頭像等,配置blog/_config.yml
文件和blog/themes/even/_config.yml
文件中對應的屬性名稱即可, 不要忘記冒號:
後加空格。 NexT 使用文檔裏有詳細的介紹。
個人域名綁定
購買域名
我用的國外的GoDaddy(需要FQ)域名提供商,好處是不用走備案流程省事兒,然後使用DNSPOD解析域名。
好多人也在用國內的阿裏萬網,可以直接在其網站做域名解析。有興趣的也可以試試。
配置GitHub端
在本地你的電腦/blog/source
目錄下新建文件名為:CNAME
文件,註意沒有後綴名!直接將自己的購買的域名寫入即可。
$ vim Documents/blog/source/CNAME // 寫入自己購買的域名,保存退出即可。
終端cd
到blog
目錄下執行如下命令重新部署:
$ hexo clean
$ hexo generate
$ hexo deploy
註意:網上許多都說在GitHub上直接新建
CNAME
文件,如若這樣的話,下次更新部署執行hexo deploy
命令後,CNAME
文件就會消失,因為本地沒有此文件嘛!
域名解析
配置GoDaddy
購買好域名後,進入GoDaddy個人帳號中的管理域名
選項,點擊三個小點
配置管理DNS
:
依次鍵入a.dnspod.com
、b.dnspod.com
和c.dnspod.com
,保存即可
轉址
部分這樣配置即可:
註:nar1su
替換為你的GitHub
用戶名即可。附僅轉址和掩蔽轉址相關信息:
配置DNSPOD
進入DNSPOD(需FQ)註冊並登陸,配置解析域名:
1) 先添加一個CNAME,主機記錄寫@,後面記錄值寫上你的xxxx.github.io
2) 再添加一個CNAME,主機記錄寫www,後面記錄值還是xxxx.github.io
xxxx是你的GitHub用戶名。這樣別人用www和不用www都能訪問你的網站(其實,www的方式,會先解析成xxxx.github.io,然後根據CNAME再變成xxx.com(你購買的域名),即中間是經過一次轉換的)。建議直接提供不帶www的域名鏈接,這樣速度快。
上面,我們用的是CNAME別名記錄,也有人使用A記錄,後面的記錄值是寫github page裏面的ip地址,但有時候IP地址會更改,導致最後解析不正確,所以還是推薦用CNAME別名記錄要好些,不建議用IP。
等幾分鐘,刷新瀏覽器。訪問https://houhaibushihai.me、https://www.houhaibushihai.me和https://nar1su.github.io,效果是一樣的。
配置七牛
Hexo我們部署到GitHub很便捷,可惜GitHub給的免費空間很少。所以盡量還是不要把圖片,視頻等多媒體,大容量資源存於GitHub,否則很快資源耗盡。
七牛,是一個雲存儲服務提供商,註冊並實名認證之後,你將免費享有10GB存儲空間,每個月10GB下載流量、100萬次GET請求和10萬次PUT/DELETE請求。
註冊七牛雲
七牛雲,建議實名認證獲取額外的免費空間。
創建空間
註意我們添加的資源為對象存儲,訪問控制為公開空間
點擊
內容管理
,上傳文件
;點擊
內容管理
,點擊指定照片的復制外鏈
;然後回到本地 md 文件中只要寫上圖片語法就可以引用了。
![自己定義的圖片名字](復制過來的外鏈)
OK了,這個時候你重新部署一下,看看是不是文章裏已經有圖片了呢!
添加評論板塊兒
添加 Disqus 評論
註冊 Disqus
點擊
I want to install Disqus on my site
Websit Name
就是disqus_shortname
自己填寫,但是要求全網唯一,設定後不可改變,比如我的是narisu
,這個在配置 Hexo 的blog/themes/next/_config.yml
文件時候需要用到。
Category 選擇種類,可以隨便選;
Language 語言選 Chinese 或者 English;
然後點 Create Site 等待界面跳轉。選擇 Basic 下的
Subscribe Now
。選擇
Configure Disqus
,Website URL
中輸入你的博客域名。如下圖:
- 配置 Hexo 的
blog/themes/next/_config.yml
文件:
yml # Disqus disqus_shortname: narisu
註:disqus_shortname
填入你自己的 Websit Name
。
特定頁面評論區禁用
禁用特定頁面的評論區:
禁用about頁面的評論模塊兒方法:在 /source/about/ 下的 index.md 文件中,title 那欄設置(添加):comments: false 。如下:
---
title:
date: 2017-12-28 14:13:34
comments: false
---
歸檔 (Archive) 如何設置成沒有分頁
在站點配置文件
即: blog/_config.yml
文件中,添加代碼:
# Archives
## 2: Enable pagination
## 1: Disable pagination
## 0: Fully Disable
archive: 1
## category: 1
## tag: 1
Reference
Hexo
Mac上搭建基於GitHub的Hexo博客
Hexo搭配七牛存儲圖片等媒體資源
next主題之第三方評論系統
大道至簡--hexo主題的歸檔如何設置成沒有分頁
添加分類頁面(別忘記 layout:
字段的添加)
如需個性化設置可參考此帖
even 主題的更多設置
Mac 上搭建基於 Hexo + GitHub 個人博客