使用hexo+github搭建免費個人博客詳細教程

來源:https://www.cnblogs.com/liuxianan/p/build-blog-website-by-hexo-github.html

前言

使用github pages服務搭建博客的好處有:

全是靜態(tài)文件,訪問速度快;

免費方便,不用花一分錢就可以搭建一個自由的個人博客,不需要服務器不需要后臺;

可以隨意綁定自己的域名,不仔細看的話根本看不出來你的網站是基于github的;

數據絕對安全,基于github的版本管理,想恢復到哪個歷史版本都行;

博客內容可以輕松打包、轉移、發(fā)布到其它平臺;

等等;

1.1. 準備工作

在開始一切之前,你必須已經:

有一個github賬號,沒有的話去注冊一個;

安裝了node.js、npm,并了解相關基礎知識;

安裝了git for windows(或者其它git客戶端)

本文所使用的環(huán)境:

Windows8.1

node.js@5.5.0

git@1.9.2

hexo@3.2.2

搭建github博客

2.1. 創(chuàng)建倉庫

新建一個名為你的用戶名.github.io的倉庫,比如說,如果你的github用戶名是test,那么你就新建test.github.io的倉庫(必須是你的用戶名,其它名稱無效),將來你的網站訪問地址就是 http://test.github.io 了,是不是很方便?

由此可見,每一個github賬戶最多只能創(chuàng)建一個這樣可以直接使用域名訪問的倉庫。

幾個注意的地方:

注冊的郵箱一定要驗證,否則不會成功;

倉庫名字必須是:username.github.io,其中username是你的用戶名;

倉庫創(chuàng)建成功不會立即生效,需要過一段時間,大概10-30分鐘,或者更久,我的等了半個小時才生效;

創(chuàng)建成功后,默認會在你這個倉庫里生成一些示例頁面,以后你的網站所有代碼都是放在這個倉庫里啦。

2.2. 綁定域名

當然,你不綁定域名肯定也是可以的,就用默認的 xxx.github.io 來訪問,如果你想更個性一點,想擁有一個屬于自己的域名,那也是OK的。

首先你要注冊一個域名,域名注冊以前總是推薦去godaddy,現在覺得其實國內的阿里云也挺不錯的,價格也不貴,畢竟是大公司,放心!

綁定域名分2種情況:帶www和不帶www的。

域名配置最常見有2種方式,CNAME和A記錄,CNAME填寫域名,A記錄填寫IP,由于不帶www方式只能采用A記錄,所以必須先ping一下你的用戶名.github.io的IP,然后到你的域名DNS設置頁,將A記錄指向你ping出來的IP,將CNAME指向你的用戶名.github.io,這樣可以保證無論是否添加www都可以訪問,如下:

然后到你的github項目根目錄新建一個名為CNAME的文件(無后綴),里面填寫你的域名,加不加www看你自己喜好,因為經測試:

如果你填寫的是沒有www的,比如 mygit.me,那么無論是訪問 http://www.mygit.me 還是 http://mygit.me ,都會自動跳轉到 http://mygit.me

如果你填寫的是帶www的,比如 www.mygit.me ,那么無論是訪問 http://www.mygit.me 還是 http://mygit.me ,都會自動跳轉到 http://www.mygit.me

如果你填寫的是其它子域名,比如 abc.mygit.me,那么訪問 http://abc.mygit.me 沒問題,但是訪問 http://mygit.me ,不會自動跳轉到 http://abc.mygit.me

另外說一句,在你綁定了新域名之后,原來的你的用戶名.github.io并沒有失效,而是會自動跳轉到你的新域名。

配置SSH key

為什么要配置這個呢?因為你提交代碼肯定要擁有你的github權限才可以,但是直接使用用戶名和密碼太不安全了,所以我們使用ssh key來解決本地和服務器的連接問題。

$cd~/.?ssh#檢查本機已存在的ssh密鑰

如果提示:No such file or directory 說明你是第一次使用git。

ssh-keygen?-t?rsa?-C"郵件地址"

然后連續(xù)3次回車,最終會生成一個文件在用戶目錄下,打開用戶目錄,找到.ssh\id_rsa.pub文件,記事本打開并復制里面的內容,打開你的github主頁,進入個人設置 -> SSH and GPG keys -> New SSH key:

將剛復制的內容粘貼到key那里,title隨便填,保存。

3.1. 測試是否成功

$?ssh?-T?git@github.com#?注意郵箱地址不用改

如果提示Are you sure you want to continue connecting (yes/no)?,輸入yes,然后會看到:

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

看到這個信息說明SSH已配置成功!

此時你還需要配置:

$?git?config?--globaluser.name"liuxianan"http://?你的github用戶名,非昵稱

$?git?config?--globaluser.email"xxx@qq.com"http://?填寫你的github注冊郵箱

具體這個配置是干嘛的我沒仔細深究。

使用hexo寫博客

4.1. hexo簡介

Hexo是一個簡單、快速、強大的基于 Github Pages 的博客發(fā)布工具,支持Markdown格式,有眾多優(yōu)秀插件和主題。

官網: http://hexo.io

github: https://github.com/hexojs/hexo

4.2. 原理

由于github pages存放的都是靜態(tài)文件,博客存放的不只是文章內容,還有文章列表、分類、標簽、翻頁等動態(tài)內容,假如每次寫完一篇文章都要手動更新博文目錄和相關鏈接信息,相信誰都會瘋掉,所以hexo所做的就是將這些md文件都放在本地,每次寫完文章后調用寫好的命令來批量完成相關頁面的生成,然后再將有改動的頁面提交到github。

4.3. 注意事項

安裝之前先來說幾個注意事項:

很多命令既可以用Windows的cmd來完成,也可以使用git bash來完成,但是部分命令會有一些問題,為避免不必要的問題,建議全部使用git bash來執(zhí)行;

hexo不同版本差別比較大,網上很多文章的配置信息都是基于2.x的,所以注意不要被誤導;

hexo有2種_config.yml文件,一個是根目錄下的全局的_config.yml,一個是各個theme下的;

4.4. 安裝

$npminstall?-g?hexo

4.5. 初始化

在電腦的某個地方新建一個名為hexo的文件夾(名字可以隨便?。?,比如我的是F:\Workspaces\hexo,由于這個文件夾將來就作為你存放代碼的地方,所以最好不要隨便放。

$cd/f/Workspaces/hexo/

$?hexo?init

hexo會自動下載一些文件到這個目錄,包括node_modules,目錄結構如下圖:

$?hexo?g#?生成

$?hexo?s#?啟動服務

執(zhí)行以上命令之后,hexo就會在public文件夾生成相關html文件,這些文件將來都是要提交到github去的:

hexo s是開啟本地預覽服務,打開瀏覽器訪問 http://localhost:4000 即可看到內容,很多人會碰到瀏覽器一直在轉圈但是就是加載不出來的問題,一般情況下是因為端口占用的緣故,因為4000這個端口太常見了,解決端口沖突問題請參考這篇文章:

http://blog.liuxianan.com/windows-port-bind.html

第一次初始化的時候hexo已經幫我們寫了一篇名為 Hello World 的文章,默認的主題比較丑,打開時就是這個樣子:

4.6. 修改主題

既然默認主題很丑,那我們別的不做,首先來替換一個好看點的主題。這是 官方主題。

個人比較喜歡的2個主題:

hexo-theme-jekyll 和 hexo-theme-yilia。

首先下載這個主題:

$?cd?/f/Workspaces/hexo/

$?git?clonehttps://github.com/litten/hexo-theme-yilia.git?themes/yilia

下載后的主題都在這里:

修改_config.yml中的theme: landscape改為theme: yilia,然后重新執(zhí)行hexo g來重新生成。

如果出現一些莫名其妙的問題,可以先執(zhí)行hexo clean來清理一下public的內容,然后再來重新生成和發(fā)布。

4.7. 上傳之前

在上傳代碼到github之前,一定要記得先把你以前所有代碼下載下來(雖然github有版本管理,但備份一下總是好的),因為從hexo提交代碼時會把你以前的所有代碼都刪掉。

4.8. 上傳到github

如果你一切都配置好了,發(fā)布上傳很容易,一句hexo d就搞定,當然關鍵還是你要把所有東西配置好。

首先,ssh key肯定要配置好。

其次,配置_config.yml中有關deploy的部分:

正確寫法:

deploy:

type:?git

repository:?git@github.com:liuxianan/liuxianan.github.io.git

branch:?master

錯誤寫法:

deploy:

type:?github

repository:?https://github.com/liuxianan/liuxianan.github.io.git

branch:?master

后面一種寫法是hexo2.x的寫法,現在已經不行了,無論是哪種寫法,此時直接執(zhí)行hexo d的話一般會報如下錯誤:

Deployer not found: github 或者 Deployer not found: git

原因是還需要安裝一個插件:

npminstallhexo-deployer-git--save

其它命令不確定,部署這個命令一定要用git bash,否則會提示:

Permission denied (publickey).

打開你的git bash,輸入hexo d就會將本次有改動的代碼全部提交,沒有改動的不會:

4.9. 保留CNAME、README.md等文件

提交之后網頁上一看,發(fā)現以前其它代碼都沒了,此時不要慌,一些非md文件可以把他們放到source文件夾下,這里的所有文件都會原樣復制(除了md文件)到public目錄的:

由于hexo默認會把所有md文件都轉換成html,包括README.md,所有需要每次生成之后、上傳之前,手動將README.md復制到public目錄,并刪除README.html。

4.10. 常用hexo命令

常見命令

hexonew"postName"#新建文章

hexonewpage"pageName"#新建頁面

hexo?generate#生成靜態(tài)頁面至public目錄

hexo?server#開啟預覽訪問端口(默認端口4000,'ctrl?+?c'關閉server)

hexo?deploy#部署到GitHub

hexo?help#?查看幫助

hexo?version#查看Hexo的版本

縮寫:

hexo?n?==?hexonew

hexo?g?==?hexo?generate

hexo?s?==?hexoserver

hexo?d?==?hexo?deploy

組合命令:

hexos?-g#生成并本地預覽

hexo?d?-g#生成并上傳

4.11. _config.yml

這里面都是一些全局配置,每個參數的意思都比較簡單明了,所以就不作詳細介紹了。

需要特別注意的地方是,冒號后面必須有一個空格,否則可能會出問題。

4.12. 寫博客

定位到我們的hexo根目錄,執(zhí)行命令:

hexonew'my-first-blog'

hexo會幫我們在_posts下生成相關md文件:

我們只需要打開這個文件就可以開始寫博客了,默認生成如下內容:

當然你也可以直接自己新建md文件,用這個命令的好處是幫我們自動生成了時間。

一般完整格式如下:

---

title:?postName#文章頁面上的顯示名稱,一般是中文

date:?2013-12-02?15:30:16#文章生成時間,一般不改,當然也可以任意修改

categories:?默認分類#分類

tags:?[tag1,tag2,tag3]#文章標簽,可空,多標簽請用格式,注意:后面有個空格

description:?附加一段文章摘要,字數最好在140字以內,會出現在meta的description里面

---

以下是正文

那么hexo new page 'postName'命令和hexo new 'postName'有什么區(qū)別呢?

hexonewpage"my-second-blog"

生成如下:

最終部署時生成:hexo\public\my-second-blog\index.html,但是它不會作為文章出現在博文目錄。

4.12.1. 寫博客工具

那么用什么工具寫博客呢?這個我還沒去找,以前自己使用editor.md簡單弄了個,大家有好用的hexo寫博客工具可以推薦個。

4.12.2. 如何讓博文列表不顯示全部內容

默認情況下,生成的博文目錄會顯示全部的文章內容,如何設置文章摘要的長度呢?

答案是在合適的位置加上即可,例如:

#?前言

使用github?pages服務搭建博客的好處有:

1.?全是靜態(tài)文件,訪問速度快;

2.?免費方便,不用花一分錢就可以搭建一個自由的個人博客,不需要服務器不需要后臺;

3.?可以隨意綁定自己的域名,不仔細看的話根本看不出來你的網站是基于github的;

<!--more-->

4.?數據絕對安全,基于github的版本管理,想恢復到哪個歷史版本都行;

5.?博客內容可以輕松打包、轉移、發(fā)布到其它平臺;

6.?等等;

最終效果:

最終效果

可以訪問git博客來查看效果:?

http://mygit.me

不過呢,其實這個博客我只是拿來玩一玩的,沒打算真的把它當博客,因為我已經有一個自己的博客了,哈哈!正因如此,本文僅限入門學習,關于hexo搭建個人博客的更高級玩法大家可以另找教程。

參考

http://www.cnblogs.com/zhcncn/p/4097881.html

http://www.itdecent.cn/p/05289a4bc8b2

擴展閱讀

我為什么鼓勵工程師寫博客

高可用Redis服務架構分析與搭建

Git使用教程:最詳細、最傻瓜、最淺顯、真正手把手教!

IntelliJ IDEA 使用教程(2019圖文版) -- 從入門到上癮

給你一份詳細的 Spring Boot 知識清單

?著作權歸作者所有,轉載或內容合作請聯系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

友情鏈接更多精彩內容