tags: Hexo;Github
categories: 前端工具
歡迎點(diǎn)擊我的博客原文
每周一篇的頻率更新博客,今天【Hexo搭建獨(dú)立博客全紀(jì)錄】系列終于進(jìn)入正題:使用Hexo搭建博客,我搭建博客是跟著網(wǎng)上的教程一步一步做的,在此基礎(chǔ)上結(jié)合官方文檔,構(gòu)成本文的內(nèi)容。
參考資料:
- 使用hexo+github搭建免費(fèi)個人博客詳細(xì)教程-liuxianan:http://blog.liuxianan.com/build-blog-website-by-hexo-github.html
- Hexo官方使用文檔:https://hexo.io/zh-cn/docs/
- NexT 官方使用文檔:http://theme-next.iissnan.com/
前言
使用github pages服務(wù)搭建博客的好處有:
- 全是靜態(tài)文件,訪問速度快;
- 免費(fèi)方便,不用花一分錢就可以搭建一個自由的個人博客,不需要服務(wù)器不需要后臺;
- 可以隨意綁定自己的域名,不仔細(xì)看的話根本看不出來你的網(wǎng)站是基于github的;
- 數(shù)據(jù)絕對安全,基于github的版本管理,想恢復(fù)到哪個歷史版本都行;
- 博客內(nèi)容可以輕松打包、轉(zhuǎn)移、發(fā)布到其它平臺;
- 等等;
準(zhǔn)備工作
在開始一切之前,你必須已經(jīng):
- 有一個github賬號,沒有的話去注冊一個;
- 安裝了node.js、npm,并了解相關(guān)基礎(chǔ)知識;
- 安裝了git for windows(或者其它git客戶端),安裝過程在【Hexo搭建獨(dú)立博客全紀(jì)錄】(一)使用Git和Github中已講過
本文所使用的環(huán)境:
- Windows7
- node.js@6.9.4 —— git命令行輸入
node -v
- git@2.8.1.windows.1 —— git命令行輸入
git version
- hexo@3.3.1 —— git命令行輸入
hexo -v
或hexo version
搭建github博客
創(chuàng)建倉庫
新建一個名為你的用戶名.github.io
的倉庫,比如說,如果你的github用戶名是test,那么你就新建test.github.io
的倉庫(必須是你的用戶名,其它名稱無效),將來你的網(wǎng)站訪問地址就是 http://test.github.io 了,是不是很方便?
由此可見,每一個github賬戶最多只能創(chuàng)建一個這樣可以直接使用域名訪問的倉庫。
幾個注意的地方:
- 注冊的郵箱一定要驗證,否則不會成功;
- 倉庫名字必須是:
username.github.io
,其中username
是你的用戶名;
創(chuàng)建成功后,以后你的博客所有代碼都是放在這個倉庫里啦。
配置SSH key(配置過的請?zhí)^)
這一步驟在【Hexo搭建獨(dú)立博客全紀(jì)錄】(一)使用Git和Github4.1和4.2中也已講過,如果在前面已經(jīng)配置過SSH key,則可以跳過此步驟。
為什么要配置這個呢?因為你提交代碼肯定要擁有你的github權(quán)限才可以,但是直接使用用戶名和密碼太不安全了,所以我們使用ssh key來解決本地和服務(wù)器的連接問題。
創(chuàng)建SSH Key
查看是否已經(jīng)有ssh密鑰:
打開用戶主目錄"C:\Users\Administrator.hp-PC",
看看有沒有.ssh目錄。
- 如果有,再看看這個目錄下有沒有id_rsa和id_rsa.pub這兩個文件。如果有,可以直接跳至下一小節(jié)“Github中添加SSH Key”
- 如果已經(jīng)有ssh密鑰,想要重新生成ssh密鑰,需要清理原有ssh密鑰:
$ mkdir key_backup
$ cp id_rsa* key_backup
$ rm id_rsa*
- 如果沒有,打開命令行,輸入命令
ssh-keygen -t rsa –C “youremail@example.com”
。此處的郵箱地址,你可以輸入自己的郵箱地址。在回車中會提示你輸入一個密碼,這個密碼會在你提交項目時使用,如果為空的話提交項目時則不用輸入。這個設(shè)置是防止別人往你的項目里提交內(nèi)容。
由于我本地此前運(yùn)行過一次,所以本地有,如下所示:
id_rsa是私鑰,不能泄露出去,id_rsa.pub是公鑰,可以放心地告訴任何人。由于之前使用Github客戶端,因此還有g(shù)ithub_rsa和github_rsa.pub兩個文件。known_hosts文件如果沒有暫時不管。
驗證是否連接成功,連接成功顯示Hi baoyuzhang! You've successfully authenticated, but GitHub does not provide shell access.
。如下:
Github中添加SSH Key
登錄github,點(diǎn)擊個人頭像打開"settings",再打開"SSH and GPG keys"頁面,然后點(diǎn)擊"New SSH Key",填上任意title,在"Key"文本框里黏貼id_rsa.pub文件的內(nèi)容,點(diǎn)擊 Add Key,你就應(yīng)該可以看到已經(jīng)添加的key。如下:
使用hexo博客框架
Hexo官方使用文檔:https://hexo.io/zh-cn/docs/
本文使用的命令和官方文檔不太一樣,但意思相同,達(dá)到的效果也相同。初學(xué)者建議跟著本文一步一不做。
hexo簡介
a.hexo是什么
Hexo是一個簡單、快速、強(qiáng)大的基于 Github Pages 的博客框架,支持Markdown格式,有眾多優(yōu)秀插件和主題。
github: https://github.com/hexojs/hexo
Hexo中文官網(wǎng): https://hexo.io/zh-cn/
b.hexo原理
由于github pages存放的都是靜態(tài)文件,博客存放的不只是文章內(nèi)容,還有文章列表、分類、標(biāo)簽、翻頁等動態(tài)內(nèi)容,假如每次寫完一篇文章都要手動更新博文目錄和相關(guān)鏈接信息,相信誰都會瘋掉,所以hexo所做的就是將這些md文件都放在本地,每次寫完文章后調(diào)用寫好的命令來批量完成相關(guān)頁面的生成,然后再將有改動的頁面提交到github。
安裝
a.注意事項
安裝之前先來說幾個注意事項:
- 很多命令既可以用Windows的cmd來完成,也可以使用git bash來完成,但是部分命令會有一些問題,為避免不必要的問題,建議全部使用git bash來執(zhí)行;
- hexo不同版本差別比較大,網(wǎng)上很多文章的配置信息都是基于2.x的,所以注意不要被誤導(dǎo);
- hexo有2種
_config.yml
文件,一個是根目錄下的全局的_config.yml
,一個是各個theme
下的_config.yml
。為了描述方便,在以下說明中,將前者稱為 站點(diǎn)配置文件, 后者稱為 主題配置文件。
b.安裝Hexo
在git bush輸入以下命令:
$ npm install -g hexo
初始化
a.初始化
在電腦的某個地方新建一個名為hexo的文件夾(名字可以隨便取),比如我的是E:\web\github\test\hexo
,由于這個文件夾將來就作為你存放博客代碼的地方,所以最好不要隨便放。
hexo會自動下載一些文件到這個目錄,包括node_modules,目錄結(jié)構(gòu)如下圖:
.
├── _config.yml
├── package.json
├── scaffolds
├── source
| ├── _drafts
| └── _posts
└── themes
b.生成靜態(tài)文件
執(zhí)行以上命令之后,hexo就會在public文件夾生成相關(guān)html文件,這些文件將來都是要提交到github上你的用戶名.github.io
的倉庫上去的:
c.本地預(yù)覽
hexo s
是開啟本地預(yù)覽服務(wù),打開瀏覽器訪問 http://localhost:4000 即可看到內(nèi)容,Ctrl+C
停止本地預(yù)覽。
若瀏覽器一直在轉(zhuǎn)圈但是就是加載不出來,或執(zhí)行hexo s
命令出現(xiàn)以下提示:
這一般情況下是因為4000端口占用的緣故,因為4000這個端口太常見了,解決端口沖突問題請參考這篇文章:
http://blog.liuxianan.com/windows-port-bind.html
第一次初始化的時候hexo已經(jīng)幫我們寫了一篇名為 Hello World 的文章,默認(rèn)的主題比較丑,打開時就是這個樣子:
更改主題
既然默認(rèn)主題很丑,那我們別的不做,首先來替換一個好看點(diǎn)的主題。
官方主題:官方提供的各種主題
這里我推薦使用使用量排名第一的主題NexT。更換NexT主題可以參考NexT 官方使用文檔,點(diǎn)擊開始使用
一步一步操作。下面做一個示范,并且下周寫的優(yōu)化設(shè)置的文章,也是基于NexT主題,可以跟著我一步一步來做。
a.下載主題
b.啟用主題
打開根目錄下站點(diǎn)配置文件_config.yml
, 找到 theme 字段,并將其值更改為 next。
到此,NexT 主題安裝完成。下一步我們將驗證主題是否正確啟用。
c.驗證主題
在切換主題之后、驗證之前, 我們最好使用 hexo clean 來清除 Hexo 的緩存,以免出現(xiàn)一些莫名其妙的問題。然后重新執(zhí)行hexo g
來重新生成。
![Uploading 2017-05-12_165136_400081.png . . .]
使用hexo s
本地預(yù)覽,如果你的博客變?yōu)橄聢D的樣子,則安裝NexT主題成功:
上傳到github
a.配置站點(diǎn)配置文件
打開根目錄下站點(diǎn)配置文件_config.yml
,配置有關(guān)deploy的部分:
b.安裝插件
此時,直接使用hexo d
部署到github,將出現(xiàn)如下錯誤:
這是因為需要安裝如下插件:
c.部署到github
其它命令不確定,hexo d
部署這個命令一定要用git bash,否則會提示Permission denied (publickey).
中間好長的安裝過程,然后安裝成功:
這時,打開https://你的用戶名.github.io/
,出現(xiàn)下圖,則表示部署到github成功:
再打開github倉庫,已經(jīng)有了內(nèi)容:
基本配置
我們自己的博客出現(xiàn)Hello World并不是我們想要的,那么我們來進(jìn)一步配置,將它真正我們自己的博客。
打開根目錄下站點(diǎn)配置文件_config.yml
,設(shè)置如下內(nèi)容:
參數(shù) | 描述 |
---|---|
title | 網(wǎng)站標(biāo)題 |
subtitle | 網(wǎng)站副標(biāo)題 |
description | 網(wǎng)站描述 |
author | 您的名字 |
language | 網(wǎng)站使用的語言 |
timezone | 網(wǎng)站時區(qū)。Hexo 默認(rèn)使用您電腦的時區(qū)。 |
其中,description主要用于SEO,告訴搜索引擎一個關(guān)于您站點(diǎn)的簡單描述,通常建議在其中包含您網(wǎng)站的關(guān)鍵詞。author參數(shù)用于主題顯示文章的作者。
配置完成后,重新部署,會發(fā)現(xiàn)如下變化:
但文章內(nèi)容還不是我們自己的呀,下面來寫我們自己的博客。
寫博客
新建文章
執(zhí)行hexo new '文章名'
,hexo會幫我們在..\hexo\source\_posts
下生成相關(guān)md文件:
打開這個文件就可以開始寫博客了,默認(rèn)生成如下內(nèi)容:
當(dāng)然你也可以直接自己新建md文件,用這個命令的好處是幫我們自動生成了時間。一般完整格式如下:
---
title: postName #文章頁面上的顯示名稱,一般是中文
date: 2013-12-02 15:30:16 #文章生成時間,一般不改,當(dāng)然也可以任意修改
categories: 默認(rèn)分類 #分類
tags: [tag1,tag2,tag3] #文章標(biāo)簽,可空,多標(biāo)簽請用格式,注意:后面有個空格
description: 附加一段文章摘要,字?jǐn)?shù)最好在140字以內(nèi),會出現(xiàn)在meta的description里面
---
以下是正文
刪除hello-world.md
,同時刪除public
文件夾下的hello-world
文件夾:
將編寫好的文章保存,重新生成和部署就可以啦!
新建頁面
假如我新建一個名字為about
的頁面:
在source文件夾下,將生成about文件夾:
部署后將在public文件夾生成一個新的html頁面:hexo\public\about\index.html
,通過訪問https://用戶名.github.io/about/
訪問這個頁面:
你可以通過編輯index.html
,添加自己的簡歷等其他你想加入的內(nèi)容。但注意,它是新建了一個html頁面,不是文章,不會出現(xiàn)在博文目錄。
至此,博客的基本功能已經(jīng)全部實(shí)現(xiàn),下面的高級配置,讓你更加方便快捷的寫博客!
高級配置
現(xiàn)在,Hexo根目錄結(jié)構(gòu)如下圖:
.
├── _config.yml
├── db.json
├── package.json
├── public
├── scaffolds
├── source
| ├── _drafts
| └── _posts
└── themes
下面介紹的幾個是會經(jīng)常用到的:
_config.yml
網(wǎng)站配置信息,也就是本文所稱的站點(diǎn)配置文件,可以在此配置大部分的參數(shù)。基本配置在前面基本已經(jīng)設(shè)置過了。
scaffolds
模版文件夾。新建文章時,Hexo 會根據(jù) scaffold 來建立文件。
Hexo的模板是指新建的markdown文件中默認(rèn)填充的內(nèi)容。例如,在使用hexo new 文章名
時,默認(rèn)生成的md文件會包含如下內(nèi)容:
默認(rèn)內(nèi)容是哪里來的呢?就在scaffold/post.md中保存:
假如對每篇博客我都需要添加分類categories
,每次都手動添加太麻煩,我希望每次默認(rèn)生成都有categories:
,那么就可以在scaffold/post.md中添加:
保存后,每次新建一篇文章時都會包含post.md中的內(nèi)容。
當(dāng)然,你也可以在scaffolds文件夾下創(chuàng)建自己的博客模板,我創(chuàng)建一個名為blog
的模板:
通過如下命令調(diào)用我創(chuàng)建的blog模板新建文章:
在_posts
中生成md文件:
public
該文件夾中的內(nèi)容將被最終push到github倉庫中。
source
資源文件夾是存放用戶資源的地方。除_posts
文件夾之外,開頭命名為 _ (下劃線)的文件 / 文件夾和隱藏的文件將會被忽略。Markdown 和 HTML 文件會被解析并放到 public 文件夾,而其他文件(如剛剛生成的about文件夾)會被拷貝到 public 文件夾。
為github倉庫添加readme
既然 source 文件夾中的內(nèi)容將全部被推送到 public 文件夾,public 文件夾中的內(nèi)容又將被最終push到github倉庫中,那么如果我們想要為github倉庫添加readme.md,只要在 source 文件夾中創(chuàng)建就好了:
部署到github,就有readme了,但我們發(fā)現(xiàn),README.md已經(jīng)被解析為README.html,顯示的全是html代碼,并不是我們想要的文檔格式的內(nèi)容:
為了解決這個問題,我們回到source文件夾,將README.md
重命名為README.MDOWN
,再部署到github:
source文件夾中,.md會被解析為html,并放到 public 文件夾被push到github,但.MDWN不會被解析。
themes
主題文件夾,下載的主題都保存在此文件夾下。Hexo 會根據(jù)主題來生成靜態(tài)頁面。
最終效果
搭的這個博客只是為了寫這篇文章,我真正的博客在這里喲!
Hexo常用命令
常見命令
hexo new "postName" #新建文章
hexo generate #生成靜態(tài)頁面至public目錄
hexo server #開啟預(yù)覽訪問端口(默認(rèn)端口4000,'ctrl + c'關(guān)閉server)
hexo deploy #部署到GitHub
hexo help # 查看幫助
hexo version #查看Hexo的版本
縮寫:
hexo n == hexo new
hexo g == hexo generate
hexo s == hexo server
hexo d == hexo deploy
組合命令:
hexo s -g #生成并本地預(yù)覽
hexo d -g #生成并上傳