基於hexo+github搭建一個獨立博客

一直據說用hexo搭建一個擁有本身域名的博客是很酷炫的事情~,在這十一花上半個小時整個hexo博客豈不美哉。html

使用Hexo吸引個人是,其簡單優雅, 並且風格多變, 適合程序員搭建我的博客,並且支持多平臺的搭建,再加上有些node,git基礎,分分鐘建立出一個高大上的博客。廢話少說,開始吧。node

準備工做

1.node:用來生成靜態頁面的 到Node.js官網下載相應平臺的最新版本,一路安裝便可。linux

2.git: 把本地的hexo內容提交到github上去.沒有安裝的能夠看此教程git

3.github:用來作博客的遠程創庫、域名、服務器。(~很少說了)程序員

而後你還要知道一點點linux命令,域名解析相關知識(以上條件你都達到了,那麼恭喜你30分鐘搭建倒計時開始~)github

安裝Hexo

(本人是Mac系統,其餘系統的朋友這部分能夠看官網教程npm

當Node.js和Git都安裝好後就能夠正式安裝Hexo了,終端執行以下命令:json

$ sudo npm install -g hexo

輸入管理員密碼即開始安裝vim

Hexo官網上的安裝命令是$ npm install -g hexo-cli,安裝時不要忘記前面加上sudo,不然會由於權限問題報錯。
注意坑一

初始化

終端cd到一個你選定的目錄(好比建立一個blog文件,$cd blog),執行hexo init命令:瀏覽器

$ hexo init

在blog目錄下,執行以下命令,安裝npm:

$ npm install

執行以下命令,開啓hexo服務器:

$ hexo s

此時,瀏覽器中打開網址http://localhost:4000,能看到以下頁面:

 

本地設置好後,接下來開始關聯Github。

1.建立倉庫

登陸你的Github賬號,新建倉庫,名爲用戶名.github.io固定寫法。

本地的blog文件夾下內容爲:

_config.yml    
db.json 
node_modules 
package.json
scaffolds
source
themes

終端cd到blog文件夾下,vim打開_config.yml,命令以下:

$ vim _config.yml

打開後往下滑到最後,修改爲下邊的樣子:

deploy:
    type: git
    repository: https://github.com/MuYunyun/MuYunyun.github.io.git
    branch: master

你須要將repository後MuYunyun換成你本身的用戶名  

注意坑二:在配置全部的_config.yml文件時(包括theme中的),在全部的冒號:後邊都要加一個空格,不然執行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仍然報錯:沒法鏈接git或找不到git,則執行以下命令來安裝hexo-deployer-git

$ npm install hexo-deployer-git --save

若你未關聯Github,則執行hexo deploy命令時終端會提示你輸入Github的用戶名和密碼,即

Username for 'https://github.com':
Password for 'https://github.com':

hexo deploy命令執行成功後,瀏覽器中打開網址http://MuYunyun.github.io(將MuYunyun換成你的用戶名)能看到和打開http://localhost:4000時同樣的頁面。 

 

爲避免每次輸入Github用戶名和密碼的麻煩,可參照第二節方法

2.添加ssh key到Github

1.1.檢查SSH keys是否存在Github

執行以下命令,檢查SSH keys是否存在。若是有文件id_rsa.pubid_dsa.pub,則直接進入步驟1.3將SSH key添加到Github中,不然進入下一步生成SSH key。

$ ls -al ~/.ssh

1.2.生成新的ssh key

執行以下命令生成public/private rsa key pair,注意將your_email@example.com換成你本身註冊Github的郵箱地址。

$ ssh-keygen -t rsa -C "your_email@example.com"

默認會在相應路徑下(~/.ssh/id_rsa.pub)生成id_rsaid_rsa.pub兩個文件。

1.3.將ssh key添加到Github中

Find前往文件夾~/.ssh/id_rsa.pub打開id_rsa.pub文件,裏面的信息即爲SSH key,將這些信息複製到Github的Add SSH key頁面便可。

進入Github --> Settings --> SSH keys --> add SSH key:

Title裏任意添一個標題,將複製的內容粘貼到Key裏,點擊下方Add key綠色按鈕便可。

3.發佈文章

終端cd到blog文件夾下,執行以下命令新建文章:

hexo new "postName"

名爲postName.md的文件會建在目錄/blog/source/_posts下。

文章編輯完成後,終端cd到blog文件夾下,執行以下命令來發布: 

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

 

安裝theme

你能夠到Hexo官網主題頁去搜尋本身喜歡的theme。這裏以hexo-theme-next爲例

終端cd到 blog 目錄下執行以下命令:

$ git clone https://github.com/iissnan/hexo-theme-next themes/next

blog目錄下_config.ymltheme的名稱landscape修改成next

終端cd到blog目錄下執行以下命令(每次部署文章的步驟):

$ hexo clean           //清除緩存文件 (db.json) 和已生成的靜態文件 (public)
$ hexo g             //生成緩存和靜態文件
$ hexo d             //從新部署到服務器

至於更改theme內容,好比名稱,描述,頭像等去修改blog/_config.yml文件和blog/themes/next/_config.yml文件中對應的屬性名稱便可,不要忘記冒號:後加空格。NexT 使用文檔裏有極詳細的介紹。

綁定我的域名

首先假設你有一個域名而且是可用狀態。修改你域名的DNS地址爲 f1g1ns1.dnspod.netf1g1ns2.dnspod.net

 

如今使用的域名是Github提供的二級域名,也能夠綁定爲本身的個性域名。購買域名,我是在萬網買的,可直接在其網站作域名解析。

1.Github端

/blog/themes/landscape/source目錄下新建文件名爲:CNAME文件,注意沒有後綴名!直接將本身的域名如:muyunyun.cn寫入。

終端cd到blog目錄下執行以下命令從新部署:

$ hexo clean
$ hexo g
$ hexo d
網上許多都是說在Github上直接新建CNAME文件,若是這樣的話,在你下一次執行hexo d部署命令後CNAME文件就消失了,由於本地沒有此文件嘛。
注意坑四

2.域名解析

若是將域名指向一個域名,實現與被指向域名相同的訪問效果,須要增長CNAME記錄。登陸萬網,在你購買的域名後邊點擊:解析 --> 添加解析

記錄類型:CNAME

主機記錄:將域名解析爲example.com(不帶www),填寫@或者不填寫

記錄值:MuYunyun.github.io. (不要忘記最後的.MuYunyun改成你本身的用戶名),點擊保存便可,以下圖:

ps:萬網DNS地址更換貌似須要一段時間才能生效,若是不能訪問請晚點或者隔天再訪問域名,若是仍是不行可能就是出問題了。

鐺鐺鐺,點擊MuYunyun.github.io和訪問http://muyunyun.cn/訪問效果一致

 

總結和說明

github pages雖然免費,但畢竟是國外的服務器,國內訪問能夠稍微緩慢,若是能夠的話,可去買一個支持Node.js的國內雲空間便可。能夠參考我以前寫的

1元搭建本身的雲服務器~~搭建好這個博客,滿滿的成就感。祝你們節日快樂~~

 

參考連接:Mac上搭建基於GitHub的Hexo博客 (這篇博文寫得已經大部分很到位了,本文是基於這篇博文上作了些改動,博文所寫的都通過實踐,若有錯誤,歡迎指正)

相關文章
相關標籤/搜索