手把手教你學(xué)會(huì)github搭建技術(shù)博客基于Hexo

本文是 記錄了 Ubuntu16.04 下 通過(guò) Hexo + GitHub 搭建的博客的完整記錄,希望大家可以耐心閱讀下。

最開始的時(shí)候,都是把自己的技術(shù)文檔、安裝攻略,整理到云筆記上,但是后來(lái),云筆記漸漸的不好用了 ,主要原因還是因?yàn)樗麄兌奸_始通過(guò)各種方式收費(fèi)或者限制了,我用過(guò) 印象、有道、為知 等等,當(dāng)我一次次的遷徙我的筆記的時(shí)候,就是我一次次的跳入一個(gè)坑。當(dāng)然,我是支持云筆記收費(fèi)的,只是他們還不到讓我買賬的程度,因?yàn)樗麄冊(cè)谑召M(fèi)后與之前相比,并沒(méi)有變的更好用。但是,我知道總有一天,我還是會(huì)為他們買單的,當(dāng)他們可以在Linux系統(tǒng)下運(yùn)行的時(shí)候,期待中吧:)

目錄流程:

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

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

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

  4. 安裝配置 Hexo

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

  6. 多個(gè)git賬號(hào),該如何設(shè)置

  7. Hexo 的常用操作

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

[TOC]

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

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

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

node.js官網(wǎng):下載安裝包 v6.10.3LTS(下載最新的即可)這是我下載的安裝包的地址

步驟:

Windows 安裝

保持默認(rèn)設(shè)置即可,一路Next,安裝很快就結(jié)束了,然后打開命令提示符win + R,輸入

  1. node -v

  2. npm -v

出現(xiàn)版本號(hào)則說(shuō)明 Node.js 環(huán)境配置成功,第一步完成?。?!

Alt text

Ubuntu安裝

我是通過(guò)瀏覽器下載到 (/home/wy/下載),你們可以找到相應(yīng)的位置(如果位置與你們的有出入可以做相應(yīng)修改):

  1. tar zxvf ~/下載/node-v6.10.3-linux-x64.tar.xz -C /opt

  2. cd /opt/node-v6.10.3-linux-x64/

  3. ./node -v

  4. ln -s /opt/node-v6.10.3-linux-x64/bin/node /usr/local/bin/node

  5. ln -s /opt/node-v6.10.3-linux-x64/bin/npm /usr/local/bin/npm

意思就是創(chuàng)建軟鏈接,在/usr/local/bin里,就可以全局使用

還有一種就是shell提示的apt-get方式,我之前就被這種方式坑了。。。強(qiáng)烈不推薦啊

另一種:

  1. sudo apt-get install nodejs

  2. sudo apt-get install npm

  3. node -v

  4. npm -v

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

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

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

git的安裝配置

Git安裝教程

GitHub - 賬戶的創(chuàng)建和配置

在Ubuntu上安裝git

  1. sudo apt-get update

    sudo apt-get install git

  2. git config --global user.name "your name"

  3. git config --global user.email "your email"

  4. git config --global push.default simple # 每次push僅push當(dāng)前分支

  5. git config --global core.autocrlffalse # 忽略window/unix換行符

  6. git config --global gui.encoding utf-8 # 避免亂碼

  7. git config --global core.quotepath off # 避免git status顯示的中文文件名亂碼

  8. git --version # 版本

  9. git config--globalmerge.tool vimdiff # 差異分析工具

  10. git config --list # 查看配置信息

  11. ssh-keygen -t rsa -C "your email"

  12. ssh-add ~/.ssh/id_rsa # github用的公鑰就在~/.ssh/id_rsa.pub

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

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

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

  1. 選擇 New repository

  2. Repository name 必須選擇 相應(yīng)的格式 "yourname.github.io"

    點(diǎn)擊綠色按鈕 Create repository 創(chuàng)建


  3. 點(diǎn)擊 Settings 完成相應(yīng)配置

  4. 選擇 Deploy keys 選項(xiàng),配置ssh秘鑰

  5. 點(diǎn)擊 Add deploy key,添加相應(yīng)秘鑰

  6. 添加內(nèi)容 ,title 隨便寫,key 需要在你的本地查看

    打開終端,輸入:

    vim ~/.ssh/id_rsa.pub

    鼠標(biāo)右鍵復(fù)制所有內(nèi)容,到 github剛才配置秘鑰頁(yè)面的 key 里

    完成內(nèi)容如下,并點(diǎn)擊 Add key

  7. 最后測(cè)試: 輸入 ssh git@github.com

    如果最后出現(xiàn),

    ERROR: Hi tekkub! You’ve successfully authenticated, but GitHub does not provide shell access

    Connection to github.com closed.

    說(shuō)明配置成功

4. 安裝配置 Hexo

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

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

  1. 如果之前node.js 安裝配置正確的話,可以運(yùn)行如下命令:

    當(dāng)然命令需要變通一下,不能完全按照下邊的執(zhí)行

在Linux終端 輸入 cd ~

進(jìn)入你的Home目錄
  1. npm install hexo-cli -g # 這一步是通過(guò)必備的node.js安裝成功后,既可以用npm安裝

    安裝成功后,會(huì)裝在 /opt/node-v6.10.3-linux-x64/bin 這個(gè)目錄

    下邊的命令,需要hexo全局使用,這里創(chuàng)建軟鏈接 :

    ln -s /opt/node-v6.10.3-linux-x64/bin/hexo /usr/local/bin/hexo

    這里完成才可以執(zhí)行第三部

  2. hexo init bigjeffwang.github.io

    我這里是在 Home目錄執(zhí)行安裝初始化 先 cd ~ 進(jìn)入Home目錄,在執(zhí)行

  3. cd bigjeffwang.github.io

  4. npm install

  5. hexo server

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

基本到這里,完成第5部,算是安裝完成,因?yàn)橹暗膅ithub的配置,會(huì)關(guān)聯(lián)github

可能需要注意的幾點(diǎn):

在使用npm 安裝 Hexo:在命令行中輸入npm install hexo-cli -g

然后你將會(huì)看到下圖,可能你會(huì)看到一個(gè)

WARN

,但是不用擔(dān)心,這不會(huì)影響你的正常使用。

查看Hexo的版本hexo version

最后在進(jìn)行hexo相關(guān)配置:

打開 你本地項(xiàng)目里的 vim _config.yml

_config.yml配置參考

需要改一下 你的 標(biāo)題 author作者 等等,按照你的意愿,下邊有許多可以改的地方,請(qǐng)參考hexo的 官方文檔

最后在文檔的最后, deploy 需要改一下,一定要注意 文檔格式 所有的: 后邊都必須有空格!!!

type 設(shè)置 git

repository 設(shè)置 你github上的項(xiàng)目的 克隆地址 這里一定不要用https:// 開頭的地址,因?yàn)檫@樣還是需要賬戶密碼登錄,后期維護(hù)麻煩,之前設(shè)置github秘鑰,也是為了方便這里,用ssh的地址方式 git@github.com:后邊接你的名字+/項(xiàng)目地址

branch 分支就設(shè)置master就可以

安裝一個(gè)擴(kuò)展 這個(gè)很有用 如下:

npm install hexo-deployer-git --save # 它可以讓你代替git, push你的博客項(xiàng)目

hexo new "hello world" 這樣可以創(chuàng)建你的一篇博客 安裝擴(kuò)展后

hexo g # 執(zhí)行這個(gè),就可以編譯你的項(xiàng)目,當(dāng)然這是簡(jiǎn)寫,完整是 hexo generate

hexo d # 同樣 執(zhí)行這個(gè),就可以部署你的項(xiàng)目,并推送到github上了

項(xiàng)目里的source/_post 這個(gè)目錄,就是你生成和存放文檔的目錄

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

下邊設(shè)置,修改hexo主題

在 _config.yml 里邊有一項(xiàng)是 theme: 它后邊接的就是你的主題

這里需要如下步驟:

  1. 進(jìn)入你的博客項(xiàng)目的themes

    cd ~/bigjeffwang.github.io/themes

  2. 從github上克隆一個(gè) 別人的主題 這里提供一下別人的主題鏈接,以供參考 hexo主題

    git clone https://github.com/wuchong/jacman.git ./jacman

    cd ./jacman

    git pull

jacman 里邊 也是有 _config.yml ,里邊怎么修改,需要你自己琢磨,大同小異.請(qǐng)參考 官方文檔

當(dāng)然,你也可以自己優(yōu)化,相當(dāng)于一個(gè)簡(jiǎn)單的web項(xiàng)目,里邊也有JS CSS IMG 目錄,可以替換相應(yīng)你喜歡的圖片

最后別忘了,修改你項(xiàng)目里的_config.yml,替換你的主題的文件夾名字

我這里是 jacman

6. 多個(gè)git賬號(hào),該如何設(shè)置

這里懶得寫,借用一下,別人總結(jié)好的 原作者文檔

場(chǎng)景:使用github的時(shí)候,大家都知道需要給該賬號(hào)添加一個(gè)SSH key才能訪問(wèn),參考 具體設(shè)置。當(dāng)然如果你在多臺(tái)機(jī)器使用一個(gè)賬戶,你可以為該賬戶添加多個(gè)SSH key。由于github是使用SSH key的fingerprint來(lái)判定你是哪個(gè)賬戶,而不是通過(guò)用戶名,這樣你就可以在設(shè)置完之后,在本地直接執(zhí)行下面的語(yǔ)句,它就會(huì)自動(dòng)使用你的.ssh/id_rsa.pub所對(duì)應(yīng)的賬戶進(jìn)行登陸,然后執(zhí)行相關(guān)命令。

  1. 本地建庫(kù)

  2. git init

  3. git commit -am"first commit'

  4. push到github上去

  5. git remote add origin git@github.com:xxxx/test.git

  6. git push origin master

但是如果你想在一臺(tái)機(jī)器使用兩個(gè)github賬號(hào)(比如私人賬號(hào)和工作用賬號(hào))。這個(gè)時(shí)候怎么指定push到哪個(gè)賬號(hào)的test倉(cāng)庫(kù)上去呢?

解決方案(假設(shè)你已經(jīng)擁有私有賬號(hào)且已經(jīng)OK,現(xiàn)在想使用另一個(gè)工作用賬號(hào)):

  1. 為工作賬號(hào)生成SSH Key

    ssh-keygen -t rsa -C"your-email-address"#存儲(chǔ)key的時(shí)候,不要覆蓋現(xiàn)有的id_rsa,使用一個(gè)新的名字,比如id_rsa_work

  2. 把id_rsa_work.pub加到你的work賬號(hào)上

  3. 把該key加到ssh agent上。由于不是使用默認(rèn)的.ssh/id_rsa,所以你需要顯示告訴ssh agent你的新key的位置

    ssh-add ~/.ssh/id_rsa_work#可以通過(guò)ssh-add -l來(lái)確認(rèn)結(jié)果

  4. 配置.ssh/config

    vi .ssh/config#加上以下內(nèi)容#default githubHost github.com

HostName github.com

    IdentityFile~/.ssh/id_rsa

    Host github_work

    HostName github.com

    IdentityFile~/.ssh/id_rsa_work
  1. 這樣的話,你就可以通過(guò)使用github.com別名github_work來(lái)明確說(shuō)你要是使用id_rsa_work的SSH key來(lái)連接github,即使用工作賬號(hào)進(jìn)行操作。

    本地建庫(kù):

    git init

    git commit-am"first commit'#push到github上去$ git remote add origin git@github_work:xxxx/test.git

    git push origin master

7. Hexo 的常用操作

官方文檔建議看看

你可以執(zhí)行下列命令來(lái)創(chuàng)建一篇新文章。

hexo new [文章名]

您可以在命令中指定文章的布局(layout),默認(rèn)為post,可以通過(guò)修改_config.yml中的default_layout參數(shù)來(lái)指定默認(rèn)布局。

布局(Layout)

Hexo 有三種默認(rèn)布局:post、page和draft,它們分別對(duì)應(yīng)不同的路徑,而您自定義的其他布局和post相同,都將儲(chǔ)存到source/_posts文件夾。

布局路徑

postsource/_posts

pagesource

draftsource/_drafts

不要處理我的文章

如果你不想你的文章被處理,你可以將 Front-Matter 中的layout:設(shè)為false。

文件名稱

Hexo 默認(rèn)以標(biāo)題做為文件名稱,但您可編輯new_post_name參數(shù)來(lái)改變默認(rèn)的文件名稱,舉例來(lái)說(shuō),設(shè)為:year-:month-:day-:title.md可讓您更方便的通過(guò)日期來(lái)管理文章。

變量描述

:title標(biāo)題(小寫,空格將會(huì)被替換為短杠)

:year建立的年份,比如,2015

:month建立的月份(有前導(dǎo)零),比如,04

:i_month建立的月份(無(wú)前導(dǎo)零),比如,4

:day建立的日期(有前導(dǎo)零),比如,07

:i_day建立的日期(無(wú)前導(dǎo)零),比如,7

草稿

剛剛提到了 Hexo 的一種特殊布局:draft,這種布局在建立時(shí)會(huì)被保存到source/_drafts文件夾,您可通過(guò)publish命令將草稿移動(dòng)到source/_posts文件夾,該命令的使用方式與new十分類似,您也可在命令中指定layout來(lái)指定布局。

$ hexo publish [layout]

草稿默認(rèn)不會(huì)顯示在頁(yè)面中,您可在執(zhí)行時(shí)加上--draft參數(shù),或是把render_drafts參數(shù)設(shè)為true來(lái)預(yù)覽草稿。

模版(Scaffold)

在新建文章時(shí),Hexo 會(huì)根據(jù)scaffolds文件夾內(nèi)相對(duì)應(yīng)的文件來(lái)建立文件,例如:

$ hexo new photo"My Gallery"

在執(zhí)行這行指令時(shí),Hexo 會(huì)嘗試在scaffolds文件夾中尋找photo.md,并根據(jù)其內(nèi)容建立文章,以下是您可以在模版中使用的變量:

變量描述

layout布局

title標(biāo)題

date文件建立日期

Markdown 11種基本語(yǔ)法

引用自http://www.cnblogs.com/hnrainll/p/3514637.html

  1. 標(biāo)題設(shè)置(讓字體變大,和word的標(biāo)題意思一樣)

在Markdown當(dāng)中設(shè)置標(biāo)題,有兩種方式:

第一種:通過(guò)在文字下方添加“=”和“-”,他們分別表示一級(jí)標(biāo)題和二級(jí)標(biāo)題。

第二種:在文字開頭加上 “#”,通過(guò)“#”數(shù)量表示幾級(jí)標(biāo)題。(一共只有1~6級(jí)標(biāo)題,1級(jí)標(biāo)題字體最大)

  1. 塊注釋(blockquote)

通過(guò)在文字開頭添加“>”表示塊注釋。(當(dāng)>和文字之間添加五個(gè)blank時(shí),塊注釋的文字會(huì)有變化。)

  1. 斜體

將需要設(shè)置為斜體的文字兩端使用1個(gè)“*”或者“_”夾起來(lái)

  1. 粗體

將需要設(shè)置為斜體的文字兩端使用2個(gè)“*”或者“_”夾起來(lái)

  1. 無(wú)序列表

在文字開頭添加(,+, and-)實(shí)現(xiàn)無(wú)序列表。但是要注意在(,+, and-)和文字之間需要添加空格。(建議:一個(gè)文檔中只是用一種無(wú)序列表的表示方式)

  1. 有序列表

使用數(shù)字后面跟上句號(hào)。(還要有空格)

  1. 鏈接(Links)

Markdown中有兩種方式,實(shí)現(xiàn)鏈接,分別為內(nèi)聯(lián)方式和引用方式。

內(nèi)聯(lián)方式:This is an example link.

引用方式:

I get 10 times more traffic from Google than from Yahoo or MSN.

  1. 圖片(Images)

圖片的處理方式和鏈接的處理方式,非常的類似。

內(nèi)聯(lián)方式:

引用方式:

alt text
alt text
  1. 代碼(HTML中所謂的Code)

實(shí)現(xiàn)方式有兩種:

第一種:簡(jiǎn)單文字出現(xiàn)一個(gè)代碼框。使用`

。(不是單引號(hào)而是左上角的ESC下面~中的`)

第二種:大片文字需要實(shí)現(xiàn)代碼框。使用Tab和四個(gè)空格。

  1. 腳注(footnote)

實(shí)現(xiàn)方式如下:

hello[1]

  1. 下劃線

在空白行下方添加三條“-”橫線。(前面講過(guò)在文字下方添加“-”,實(shí)現(xiàn)的2級(jí)標(biāo)題)

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

深夜倉(cāng)促總結(jié)的,因?yàn)橹耙呀?jīng)安裝過(guò),所以過(guò)程,有些,就不方便截圖,實(shí)在懶得從新裝了,但是基本保證沒(méi)漏洞,少了部分截圖,也絕對(duì)可以順利安裝.文章里少部分摘抄了別人的總結(jié),基本我全都放出了原文的鏈接.對(duì)于我轉(zhuǎn)載的原作者,而沒(méi)有署名的,本著以分享的目的,請(qǐng)多多見諒,哈哈.

最后的最后,我啰里啰嗦的寫了一大堆,如果你仔細(xì)看完了,并且安裝成功了,那么恭喜你加入了這個(gè)集體.

愿大家都能寫出有質(zhì)量的技術(shù)博客,分享于眾吧!


  1. hi ?

最后編輯于
?著作權(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)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

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

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