Hexo + GitHub Pages 搭建博客的教程

轉(zhuǎn)載http://www.cnblogs.com/bxm0927/p/6927340.html

大概流程

1. 搭建 Node.js 環(huán)境

2. 搭建 Git 環(huán)境

3. GitHub 注冊(cè)和配置

4. 安裝配置 Hexo

5. 關(guān)聯(lián) Hexo 與 GitHub Pages

6. GitHub Pages 地址解析到個(gè)人域名

7. Hexo 的常用操作

8. 結(jié)束語(yǔ)

搭建 Node.js 環(huán)境

為什么要搭建 Node.js 環(huán)境? - 因?yàn)?Hexo 博客系統(tǒng)是基于 Node.js 編寫(xiě)的

Node.js 是一個(gè)基于 Chrome V8 引擎的 JavaScript 運(yùn)行環(huán)境,可以在非瀏覽器環(huán)境下,解釋運(yùn)行 JS 代碼。

在 Node.js 官網(wǎng):https://nodejs.org/en/下載安裝包v6.10.3 LTS

保持默認(rèn)設(shè)置即可,一路Next,安裝很快就結(jié)束了。

然后打開(kāi)命令提示符,輸入node -v、npm -v,出現(xiàn)版本號(hào)則說(shuō)明 Node.js 環(huán)境配置成功,第一步完成?。?!

搭建 Git 環(huán)境

為什么要搭建 Git 環(huán)境? - 因?yàn)樾枰驯镜氐木W(wǎng)頁(yè)和文章等提交到 GitHub 上。

Git 是一款免費(fèi)、開(kāi)源的分布式版本控制系統(tǒng),用于敏捷高效地處理任何或小或大的項(xiàng)目。

在 Git 官網(wǎng):https://git-scm.com/下載安裝包Git-2.13.0-64-bit.exe

桌面右鍵,打開(kāi)Git Bush Here,輸入git --version,出現(xiàn)版本號(hào)則說(shuō)明 Git 環(huán)境配置成功,第二步完成?。?!

GitHub 注冊(cè)和配置

GitHub 是一個(gè)代碼托管平臺(tái),因?yàn)橹恢С?Git 作為唯一的版本庫(kù)格式進(jìn)行托管,故名 GitHub。

Github注冊(cè):https://github.com/

創(chuàng)建倉(cāng)庫(kù):Repository name 使用自己的用戶(hù)名,倉(cāng)庫(kù)名規(guī)則:

注意:yourname必須是你的用戶(hù)名。

yourname/yourname.github.io

訪問(wèn) yourname.github.io,如果可以正常訪問(wèn),那么 Github 的配置已經(jīng)結(jié)束了。

到此搭建 Hexo 博客的相關(guān)環(huán)境配置已經(jīng)完成,下面開(kāi)始講解 Hexo 的相關(guān)操作

安裝配置 Hexo

Hexo 是一個(gè)快速、簡(jiǎn)潔且高效的博客框架,使用 Markdown(或其他渲染引擎)解析文章,在幾秒內(nèi),即可利用靚麗的主題生成靜態(tài)網(wǎng)頁(yè)。

強(qiáng)烈建議你花20分鐘區(qū)讀一讀 Hexo 的官方文檔:https://hexo.io/zh-cn/

使用 npm 安裝 Hexo:在命令行中輸入

npm install hexo-cli -g

然后你將會(huì)看到下圖,可能你會(huì)看到一個(gè)WARN,但是不用擔(dān)心,這不會(huì)影響你的正常使用。

查看Hexo的版本

hexo version

安裝 Hexo 完成后,請(qǐng)執(zhí)行下列命令來(lái)初始化 Hexo,用戶(hù)名改成你的,Hexo 將會(huì)在指定文件夾中新建所需要的文件。

hexo init bxm0927.github.io

cd bxm0927.github.io

npm install

新建完成后,指定文件夾的目錄如下:

.

├── .deploy? ? ? ? #需要部署的文件

├── node_modules? ? #Hexo插件

├── public? ? ? ? ? #生成的靜態(tài)網(wǎng)頁(yè)文件

├── scaffolds? ? ? #模板

├── source? ? ? ? ? #博客正文和其他源文件,404、favicon、CNAME 都應(yīng)該放在這里

| ├── _drafts? ? ? #草稿

| └── _posts? ? ? ? #文章

├── themes? ? ? ? ? #主題

├── _config.yml? ? #全局配置文件

└── package.json? ? #npm 依賴(lài)等

運(yùn)行本地 Hexo 服務(wù)

hexo server

或者

hexo s

您的網(wǎng)站會(huì)在http://localhost:4000下啟動(dòng)。如果http://localhost:4000能夠正常訪問(wèn),則說(shuō)明 Hexo 本地博客已經(jīng)搭建起來(lái)了,只是本地哦,別人看不到的。下面,我們要部署到Github。

注意1:執(zhí)行hexo server提示找不到該指令

解決辦法:在Hexo 3.0 后server被單獨(dú)出來(lái)了,需要安裝server,安裝的命令如下:

sudo npm install hexo-server

或者

npm install hexo -server --save

關(guān)聯(lián) Hexo 與 GitHub Pages

我們?nèi)绾巫尡镜豨it項(xiàng)目與遠(yuǎn)程的github建立聯(lián)系呢?用 SSH keys

生成SSH keys

輸入你自己的郵箱地址

ssh-keygen -t rsa -C "80583600@qq.com"

在回車(chē)中會(huì)提示你輸入一個(gè)密碼,這個(gè)密碼會(huì)在你提交項(xiàng)目時(shí)使用,如果為空的話提交項(xiàng)目時(shí)則不用輸入,我們按回車(chē)不設(shè)置密碼。

添加 SSH Key 到 GitHub

打開(kāi)C:\Users\bxm09\.ssh\id_rsa.pub,此文件里面內(nèi)容為剛才生成的密鑰,準(zhǔn)確的復(fù)制這個(gè)文件的內(nèi)容,粘貼到https://github.com/settings/ssh的new SSH key中

測(cè)試

可以輸入下面的命令,看看設(shè)置是否成功,git@github.com的部分不要修改:

ssh -T git@github.com

如果是下面的反饋:

The authenticity of host ‘github.com (207.97.227.239)’ can’t be established.

RSA key fingerprint is 16:27:ac:a5:76:28:2d:36:63:1b:56:4d:eb:df:a6:48.

Are you sure you want to continue connecting (yes/no)?

不要緊張,輸入yes就好,然后會(huì)看到:

Hi aierui! You've successfully authenticated, but GitHub does not provide shell access.

配置Git個(gè)人信息

現(xiàn)在你已經(jīng)可以通過(guò) SSH 鏈接到 GitHub 了,還有一些個(gè)人信息需要完善的。

Git 會(huì)根據(jù)用戶(hù)的名字和郵箱來(lái)記錄提交。GitHub 也是用這些信息來(lái)做權(quán)限的處理,輸入下面的代碼進(jìn)行個(gè)人信息的設(shè)置,把名稱(chēng)和郵箱替換成你自己的。

git config --global user.name "bxm0927"

git config --global user.email "80583600@qq.com"

配置 Deployment

在_config.yml文件中,找到Deployment,然后按照如下修改,用戶(hù)名改成你的:

需要注意的是:冒號(hào)后面記得空一格!

# Deployment

## Docs: https://hexo.io/docs/deployment.html

deploy:

type: git

repo: git@github.com:bxm0927/bxm0927.github.io.git

branch: master

本地文件提交到 GitHub Pages

// 刪除舊的 public 文件

hexo clean

// 生成新的 public 文件

hexo generate

或者

hexo g

// 開(kāi)始部署

hexo deploye

或者

hexo d

在瀏覽器中輸入https://bxm0927.github.io(用戶(hù)名改成你的)看到了 Hexo 與 GitHub Pages 已經(jīng)成功關(guān)聯(lián)了,哇哇哇哇哇哇,開(kāi)心死你了,不要忘了回來(lái)給我點(diǎn)贊喲 ~

注意1:若上面操作失敗,則需要提前安裝一個(gè)擴(kuò)展:

npm install hexo-deployer-git --save

注意2:如果在執(zhí)行hexo d后,出現(xiàn)error deployer not found:github的錯(cuò)誤(如下),則是因?yàn)闆](méi)有設(shè)置好 public key 所致,重新詳細(xì)設(shè)置即可。

Permission denied (publickey).

fatal: Could not read from remote repository.

Please make sure you have the correct access rights

and the repository exists.

注意3:怎么避免 .md 文件被解析?

Hexo原理就是hexo在執(zhí)行hexo generate時(shí)會(huì)在本地先把博客生成的一套靜態(tài)站點(diǎn)放到public文件夾中,在執(zhí)行hexo deploy時(shí)將其復(fù)制到.deploy文件夾中。Github的版本庫(kù)通常建議同時(shí)附上README.md說(shuō)明文件,但是hexo默認(rèn)情況下會(huì)把所有md文件解析成html文件,所以即使你在線生成了 README. md,它也會(huì)在你下一次部署時(shí)被刪去。怎么解決呢?

在執(zhí)行hexo deploy前把在本地寫(xiě)好的README.md文件復(fù)制到.deploy文件夾中,再去執(zhí)行hexo deploy。

GitHub Pages 地址解析到個(gè)人域名

Github Pages 是面向用戶(hù)、組織和項(xiàng)目開(kāi)放的公共靜態(tài)頁(yè)面搭建托管服 務(wù),站點(diǎn)可以被免費(fèi)托管在 Github 上,你可以選擇使用 Github Pages 默 認(rèn)提供的域名 github.io 或者自定義域名來(lái)發(fā)布站點(diǎn)。

看著博客的域名是二級(jí)域名,總有一種寄人籬下的感覺(jué),為了讓這個(gè)小窩看起來(lái)更加正式,我在阿里云上買(mǎi)了一個(gè)域名,打算將博客綁定自己的域名。

進(jìn)行該綁定過(guò)程,其實(shí)就是一個(gè)重定向的過(guò)程。

在 GitHub 倉(cāng)庫(kù)的根目錄下建立一個(gè)CNAME的文本文件(注意:沒(méi)有擴(kuò)展名),文件里面只能輸入一個(gè)你的域名,不能加http://

www.lovebxm.com

注意:CNAME 一定是在你 Github 項(xiàng)目的 master 根目錄下

進(jìn)入阿里云域名解析地址,添加解析:

記錄類(lèi)型選擇CNAME

主機(jī)記錄填www

解析線路選擇默認(rèn)

記錄值填yourname.github.io

TTL值為10分鐘

再添加一個(gè)解析,記錄類(lèi)型A

主機(jī)記錄填www

解析線路選擇默認(rèn)

記錄值填你GitHub 的ip地址(在cmd中ping:)

ping bxm0927.github.com

點(diǎn)擊保存,等 1 分鐘,訪問(wèn)下你自己的域名,一切就ok了。

域名綁定成功,域名解析成功,因此你在瀏覽中輸入www.lovebxm.com,或 lovebxm.com 就可以訪問(wèn)到博客了,輸入 bxm0927.github.io 會(huì)重定向到www.lovebxm.com。過(guò)程:www 的方式,會(huì)先解析成http://xxxx.github.io,然后根據(jù) CNAME 再變成 www

注意:CNAME文件在下次hexo deploy的時(shí)候就消失了,需要重新創(chuàng)建,這樣就很繁瑣

方法一:每次hexo d之后,就去 GitHub 倉(cāng)庫(kù)根目錄新建 CNAME文件

方法二:在hexo g之后,hexo d之前,把CNAME文件復(fù)制到 “\public" 目錄下面,里面寫(xiě)入你要綁定的域名。

方法三(推薦):將需要上傳至github的內(nèi)容放在source文件夾,例如CNAME、favicon.ico、images等,這樣在 hexo d 之后就不會(huì)被刪除了。

方法四:通過(guò)安裝插件實(shí)現(xiàn)永久保留

$ npm install hexo-generator-cname --save

之后在_config.yml中添加一條

plugins:

- hexo-generator-cname

需要注意的是:如果是在github上建立的CNAME文件,需要先clone到本地,然后安裝插件,在deploy上去即可。CNAME只允許一個(gè)域名地址。

注意1:每次生成的 CNAME 都是 yoursite.com 怎么解決?

修改 _config.yml

url: http://www.lovebxm.com

root: /

permalink: :year/:month/:day/:title/

permalink_defaults:

Hexo 的常用操作

發(fā)表一篇文章

hexo new "文章標(biāo)題"

D:\GitHub\Hexo\test>hexo new "文章標(biāo)題"

INFO? Created: D:\GitHub\Hexo\test\source\_posts\文章標(biāo)題.md

在本地博客文件夾source\_posts文件夾下看到我們新建的 markdown 文件。

當(dāng)然,我們也可以手動(dòng)添加Markdown文件在source->_deploy文件夾下,其效果同樣可以媲美hexo new

文章編輯好之后,運(yùn)行生成、部署命令:

hexo clean

hexo g

hexo d

當(dāng)然你也可以執(zhí)行下面的命令,相當(dāng)于上面兩條命令的效果

hexo clean

hexo d -g

新建一個(gè)自定義頁(yè)面

hexo new page folder

文章如何添加多個(gè)標(biāo)簽

有兩種多標(biāo)簽格式

tags: [a, b, c]

tags:

- a

- b

- c

顯示部分文章內(nèi)容

如果在博客文章列表中,不想全文顯示,可以增加, 后面的內(nèi)容就不會(huì)顯示在列表。


更改主題

官方主題庫(kù):https://hexo.io/themes/

Hexo主題非常,推薦使用Next為主題,請(qǐng)閱讀 Next 的官方文檔(http://theme-next.iissnan.com/),5 分鐘快速安裝。

再提示一點(diǎn),大家可以hexo主題修改一步就hexo s看下變化,初次接觸對(duì)參數(shù)不清楚。只有hexo s后在可以在本地瀏覽到效果,Ctrl+C 停止服務(wù)器。

添加插件

添加 sitemap 和 feed 插件

切換到你本地的 hexo 目 CIA ,在命令行窗口,輸入以下命令

npm install hexo-generator-feed -save

npm install hexo-generator-sitemap -save

修改_config.yml,增加以下內(nèi)容

# Extensions

Plugins:

- hexo-generator-feed

- hexo-generator-sitemap

#Feed Atom

feed:

type: atom

path: atom.xml

limit: 20

#sitemap

sitemap:

path: sitemap.xml

再執(zhí)行以下命令,部署服務(wù)端

hexo d -g

配完之后,就可以訪問(wèn)https://bxm0927.github.io/atom.xmlhttps://bxm0927.github.io/sitemap.xml,發(fā)現(xiàn)這兩個(gè)文件已經(jīng)成功生成了。

添加 404 頁(yè)面

GitHub Pages 自定義404頁(yè)面非常容易,直接在根目錄下創(chuàng)建自己的404.html就可以。但是自定義404頁(yè)面僅對(duì)綁定頂級(jí)域名的項(xiàng)目才起作用,GitHub默認(rèn)分配的二級(jí)域名是不起作用的,使用hexo server在本機(jī)調(diào)試也是不起作用的。

其實(shí),404頁(yè)面可以做更多有意義的事,來(lái)做個(gè)404公益項(xiàng)目吧。

推薦使用騰訊公益404http://www.qq.com/404/

src="http://qzonestyle.gtimg.cn/qzone/hybrid/app/404/search_children.js"

charset="utf-8"

homePageUrl="http://www.lovebxm.com/"

homePageName="回到我的主頁(yè)">

復(fù)制上面代碼,貼粘到目錄下新建的404.html即可!

多PC同步管理博客

很多人可能家里一臺(tái)筆記本,公司一個(gè)臺(tái)式機(jī),想兩個(gè)同時(shí)管理博客,同時(shí)達(dá)到備份的博客主題、文章、配置的目的。下面就介紹一下用github來(lái)備份博客并同步博客。

A電腦備份博客內(nèi)容到github

配置.gitignore文件。進(jìn)入博客目錄文件夾下,找到此文件,用sublime text 打開(kāi),在最后增加兩行內(nèi)容/.deploy_git和/public

初始化倉(cāng)庫(kù)。

在博客根目錄下,在git bash下依次執(zhí)行g(shù)it init和git remote add origin 為遠(yuǎn)程倉(cāng)庫(kù)地址。

同步到遠(yuǎn)程倉(cāng)庫(kù)。

gitbash下依次執(zhí)行以下命令

git add . #添加目錄下所有文件

git commit -m "更新說(shuō)明" #提交并添加更新說(shuō)明

git push -u origin master #推送更新到遠(yuǎn)程倉(cāng)庫(kù)

B電腦拉下遠(yuǎn)程倉(cāng)庫(kù)文件

在B電腦上同樣先安裝好node、git、ssh、hexo,然后建好hexo文件夾,安裝好插件,(然后選做:將備份到遠(yuǎn)程倉(cāng)庫(kù)的文件及文件夾刪除),然后執(zhí)行以下命令:

git init

git remote add origin

git fetch --all

git reset --hard origin/master

發(fā)布博客后同步

在B電腦發(fā)布完博客之后,記得將博客備份同步到遠(yuǎn)程倉(cāng)庫(kù)

執(zhí)行以下命令:

git add .

#可以用git master 查看更改內(nèi)容

git commit -m "更新信息"

git push -u origin master? #以后每次提交可以直接git push

平時(shí)同步管理

每次想寫(xiě)博客時(shí),先執(zhí)行:git pull進(jìn)行同步更新。發(fā)布完文章后同樣按照上面的 發(fā)布博客后同步 同步到遠(yuǎn)程倉(cāng)庫(kù)。

中文亂碼

在 md 文件中寫(xiě)中文內(nèi)容,發(fā)布出來(lái)后為亂碼,原因是 md 的編碼不對(duì),將 md 文件另存為UTF-8編碼的文件即可解決問(wèn)題。

結(jié)束語(yǔ)

建站的系統(tǒng)有很多,如:

-Hexo + GitHub Pages

-Jekyll + GitHub Pages

-WordPress + 服務(wù)器 + 域名

-DeDeCMS + 服務(wù)器 + 域名

- …

使用 Hexo + GitHub Pages 建站,有優(yōu)點(diǎn)也有缺點(diǎn):

- GitHub Pages 不支持?jǐn)?shù)據(jù)庫(kù)管理,所以你只能做靜態(tài)頁(yè)面的博客,不能像其他博客(如 WordPress)那樣通過(guò)數(shù)據(jù)庫(kù)管理自己的博客內(nèi)容。

- 但是,GitHub Pages 無(wú)需購(gòu)置服務(wù)器,免服務(wù)器費(fèi)的同時(shí)還能做負(fù)載均衡,github pages有300M免費(fèi)空間。

- 個(gè)人博客真的有必要用數(shù)據(jù)庫(kù)嗎?答案是否定的。博客靜態(tài)化,評(píng)論記錄使用第三方的網(wǎng)易云跟帖就可以了。靜態(tài)的博客更有利于搜索引擎蜘蛛爬取,輕量化的感覺(jué)真的很好。

- 通過(guò) Hexo 你可以輕松地使用 Markdown 編寫(xiě)文章,非常符合我的口味。Markdown 真的是專(zhuān)門(mén)針對(duì)程序員開(kāi)發(fā)的語(yǔ)言啊,現(xiàn)在感覺(jué)沒(méi)有 Markdown什么都不想寫(xiě)。什么富文本編輯器,什么word,太麻煩了!而且樣式都好丑!效率太低!

推薦幾個(gè)很好用的在線 Markdown 編輯器:

- 作業(yè)部落:https://www.zybuluo.com/mdeditor

- 馬克飛象:https://maxiang.io

推薦圖床:

-極簡(jiǎn)圖床 + chrome 插件 + 七??臻g,七牛云儲(chǔ)存提供10G的免費(fèi)空間,以及每月10G的流量,存放個(gè)人博客外鏈圖片最好不過(guò)了,七牛云儲(chǔ)存還有各種圖形處理功能、縮略圖、視頻存放速度也給力。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容