1. 程式人生 > >Mac 上搭建基於 Hexo + GitHub 個人博客

Mac 上搭建基於 Hexo + GitHub 個人博客

定義 出現 域名綁定 七牛雲 ip地址 語言 conf als 避免

環境配置

本人電腦系統: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是你建立的文件夾名稱。

cdblog文件夾下,執行如下命令安裝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

終端cdblog文件夾下,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 generatehexo 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.pubid_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_rsaid_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綠色按鈕即可。

發布文章

終端cdblog文件夾下,執行如下命令新建文章:

$ hexo new "fileName"

文件名為fileName.md的文件會建在目錄/blog/source/_posts下,fileName是文件名,為方便鏈接文件名不建議命名為漢字。你當然可以用vim來編輯文章。我在用Typora編輯器,所寫即所得,雖然缺點也不少,但書寫基本沒什麽問題。如果你有好用的markdown編輯器,請推薦我,感激不盡!

文章編輯完成後,終端cdblog文件夾下,執行如下命令來發布:

$ hexo generate         // 生成靜態頁面 
$ hexo deploy           // 將文章部署到GitHub

至此,macOS上搭建基於GitHub的Hexo博客就完成了。下面的內容是博客的一些個性化設置,如有興趣,請各取所需。

安裝主題(theme)

你可以到Hexo官方主題、有哪些好看的 Hexo 主題?找自己喜歡的主題。這裏以hexo-theme-next為例,終端cdblog目錄下,執行如下命令:

$ 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

編輯完成後,終端cdblog文件夾下,執行如下命令(每次部署文章的步驟)來更新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       // 寫入自己購買的域名,保存退出即可。

技術分享圖片

終端cdblog目錄下執行如下命令重新部署:

$ hexo clean
$ hexo generate
$ hexo deploy

註意:網上許多都說在GitHub上直接新建CNAME文件,如若這樣的話,下次更新部署執行hexo deploy命令後,CNAME文件就會消失,因為本地沒有此文件嘛!

域名解析

配置GoDaddy

購買好域名後,進入GoDaddy個人帳號中的管理域名選項,點擊三個小點

技術分享圖片

配置管理DNS

技術分享圖片

依次鍵入a.dnspod.comb.dnspod.comc.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請求。

註冊七牛雲

七牛雲,建議實名認證獲取額外的免費空間。

創建空間

註意我們添加的資源為對象存儲,訪問控制為公開空間

  1. 點擊內容管理上傳文件

  2. 點擊內容管理,點擊指定照片的 復制外鏈

  3. 然後回到本地 md 文件中只要寫上圖片語法就可以引用了。

![自己定義的圖片名字](復制過來的外鏈)

OK了,這個時候你重新部署一下,看看是不是文章裏已經有圖片了呢!

添加評論板塊兒

添加 Disqus 評論

  1. 註冊 Disqus

  2. 點擊 I want to install Disqus on my site

  3. Websit Name 就是 disqus_shortname 自己填寫,但是要求全網唯一,設定後不可改變,比如我的是 narisu ,這個在配置 Hexo 的blog/themes/next/_config.yml文件時候需要用到。
    Category 選擇種類,可以隨便選;
    Language 語言選 Chinese 或者 English;
    然後點 Create Site 等待界面跳轉。

  4. 選擇 Basic 下的 Subscribe Now

  5. 選擇 Configure DisqusWebsite URL 中輸入你的博客域名。如下圖:

技術分享圖片

  1. 配置 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 個人博客