Hexo&Github Blog 搭建

今天用Github PagesHexo 來搭建了一個靜態(tài)的博客裆装。好處就是不需要數(shù)據(jù)庫也不需要服務(wù)器,完全交由Github托管就可以擁有自己的博客潦闲。下面我記錄了一下我自己的搭建的過程攒菠。

Contex

  • linux Cenos 6.5,64位
  • Hexo 3.7.1

Github

因為所有的內(nèi)容都是Github托管的,所以你首先要有一個Github賬號歉闰。然后在創(chuàng)建一個Repository,這個Repository必須要滿足一個規(guī)則才能生成Pages.詳細(xì)內(nèi)容可以查閱官方文檔 Github Pages

簡單來說就是創(chuàng)建一個名字為 username.github.io的庫辖众,其中username為你自己的Github的用戶名。

創(chuàng)建成功之后和敬,把項目clone到本地凹炸。我機(jī)器本身還沒有Git所以我先安裝Git

yum info git
yum install -y git

然后我還需要添加這臺機(jī)器對github的ssh權(quán)限,這樣才能訪問github昼弟。

#生成key
ssh-keygen -t rsa -C "xxxx@gmail.com"

cd .ssh/
cat id_rsa.pub 
# 得到這個key后把它添加進(jìn)你的github key里面

完成之后我們把剛才創(chuàng)建的Repository拷貝到本地啤它。

git clone git@github.com:username/username.github.io.git

拷貝下來之后,我們在里面寫一個我們的首頁,并提交到我們的Repository

cd kingty.github.io

echo "Hello World" > index.html

git add --all

git commit -m "Initial commit"

git push -u origin master

到這里舱痘,你到瀏覽器輸入username.github.io應(yīng)該就可以訪問到你剛才的html頁面变骡。其實到這里就相當(dāng)于你的博客已經(jīng)搭建完成了。但是芭逝,我們自己去寫靜態(tài)頁面肯定是一個繁重的工作塌碌。因此我們就有了下面要介紹使用的工具Hexo

Hexo

安裝

Hexo是一個快速、簡潔且高效的博客框架铝耻。Hexo 使用 Markdown(或其他渲染引擎)解析文章誊爹,在幾秒內(nèi),即可利用靚麗的主題生成靜態(tài)網(wǎng)頁瓢捉。并且可以幫助我們直接部署到github.io也就是你上面創(chuàng)建的Repository上面???這樣我們就可以只需要寫Markdown文件就完成了博客部署频丘。

Hexo是有node 構(gòu)造所以我需要先在機(jī)器上安裝node.

rpm -ivh http://download.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm

rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-remi

rpm -ivh http://rpms.famillecollet.com/enterprise/remi-release-6.rpm

rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-remi

yum -y install nodejs npm --enablerepo=epel

安裝好node之后我們就可以用npm安裝hexo

npm install -g hexo

在安裝hexo的時候可能會遇到問題:

npm ERR! Error: CERT_UNTRUSTED
npm ERR!    at SecurePair.<anonymous> (tls.js:1430:32)
npm ERR!    at SecurePair.emit (events.js:92:17)
npm ERR!    at SecurePair.maybeInitFinished (tls.js:1029:10)
npm ERR!    at CleartextStream.read [as _read] (tls.js:521:13)
npm ERR!    at CleartextStream.Readable.read (_stream_readable.js:341:10)
npm ERR!    at EncryptedStream.write [as _write] (tls.js:418:25)
npm ERR!    at doWrite (_stream_writable.js:226:10)
npm ERR!    at writeOrBuffer (_stream_writable.js:216:5)
npm ERR!    at EncryptedStream.Writable.write (_stream_writable.js:183:11)
npm ERR!    at write (_stream_readable.js:602:24)
npm ERR! If you need help, you may report this log at:
npm ERR!    <http://github.com/isaacs/npm/issues>
npm ERR! or email it to:
npm ERR!    <npm-@googlegroups.com>
npm ERR! System Linux 2.6.32-696.18.7.el6.x86_64
npm ERR! command "node" "/usr/bin/npm" "install" "-g" "hexo"
npm ERR! cwd /root/github/kingty.github.io
npm ERR! node -v v0.10.48
npm ERR! npm -v 1.3.6
npm ERR! 
npm ERR! Additional logging details can be found in:
npm ERR!    /root/github/kingty.github.io/npm-debug.log
npm ERR! not ok code 0

這是因為npm用https導(dǎo)致的,解決辦法是:

npm config set strict-ssl false

然后應(yīng)該就可以正常安裝好了泡态。完成之后我們需要初始化Hexo,首先你還是要在剛才的username.github.io這個目錄下搂漠,你現(xiàn)在應(yīng)該在master分支,這時候你需要創(chuàng)建另外一個分支hexo

git checkout -b hexo

然后在這個分支上初始化

hexo init

初始化的過程可能你會遇到問題如下:

/usr/lib/node_modules/hexo/node_modules/hexo-cli/lib/hexo.js:13
class HexoNotFoundError extends Error {}
^^^^^
SyntaxError: Unexpected reserved word
    at Module._compile (module.js:439:25)
    at Object.Module._extensions..js (module.js:474:10)
    at Module.load (module.js:356:32)
    at Function.Module._load (module.js:312:12)
    at Module.require (module.js:364:17)
    at require (module.js:380:17)
    at Object.<anonymous> (/usr/lib/node_modules/hexo/bin/hexo:5:1)
    at Module._compile (module.js:456:26)
    at Object.Module._extensions..js (module.js:474:10)
    at Module.load (module.js:356:32)
    

原因是node的版本過低某弦,需要update 一下node到最新版

#安裝更新的一個軟件
npm install n -g

#更新到最新stable版本
n stable

#重新初始化
hexo init

這個時候你可能還???遇到問題如下:

FATAL ~/github/kingty.github.io not empty, please run `hexo init` on an empty folder and then copy your files into it
FATAL Something's wrong. Maybe you can find the solution here: http://hexo.io/docs/troubleshooting.html
Error: target not empty
    at Context.initConsole (/usr/lib/node_modules/hexo/node_modules/hexo-cli/lib/console/init.js:30:27)
    at Context.tryCatcher (/usr/lib/node_modules/hexo/node_modules/bluebird/js/release/util.js:16:23)
    at Context.<anonymous> (/usr/lib/node_modules/hexo/node_modules/bluebird/js/release/method.js:15:34)
    at /usr/lib/node_modules/hexo/node_modules/hexo-cli/lib/context.js:44:9
    at Promise._execute (/usr/lib/node_modules/hexo/node_modules/bluebird/js/release/debuggability.js:303:9)
    at Promise._resolveFromExecutor (/usr/lib/node_modules/hexo/node_modules/bluebird/js/release/promise.js:483:18)
    at new Promise (/usr/lib/node_modules/hexo/node_modules/bluebird/js/release/promise.js:79:10)
    at Context.call (/usr/lib/node_modules/hexo/node_modules/hexo-cli/lib/context.js:40:10)
    at /usr/lib/node_modules/hexo/node_modules/hexo-cli/lib/hexo.js:68:17
    at tryCatcher (/usr/lib/node_modules/hexo/node_modules/bluebird/js/release/util.js:16:23)
    at Promise._settlePromiseFromHandler (/usr/lib/node_modules/hexo/node_modules/bluebird/js/release/promise.js:512:31)
    at Promise._settlePromise (/usr/lib/node_modules/hexo/node_modules/bluebird/js/release/promise.js:569:18)
    at Promise._settlePromise0 (/usr/lib/node_modules/hexo/node_modules/bluebird/js/release/promise.js:614:10)
    at Promise._settlePromises (/usr/lib/node_modules/hexo/node_modules/bluebird/js/release/promise.js:693:18)
    at Promise._fulfill (/usr/lib/node_modules/hexo/node_modules/bluebird/js/release/promise.js:638:18)
    at Promise._resolveCallback (/usr/lib/node_modules/hexo/node_modules/bluebird/js/release/promise.js:432:57)

這是因為hexo的初始化必須在一個空目錄下桐汤,包括隱藏的目錄而克。你的文件下應(yīng)該會有一個.git???你剛剛創(chuàng)建的index.html,你需要暫時把他們移動到另外一個目錄怔毛,初始化完成之后再移動回來员萍。

#移動出去
mv index.html ../temp
mv .git ../temp

#初始化
hexo init

這時候應(yīng)該可以初始化成功了,然后用相同的方法移動回來拣度,才能進(jìn)行下一步安裝一下

npm install

這個時候應(yīng)該hexo就安裝完成了碎绎。
然后你可以把這些東西push到你的hexo分支上去。

git add .
git commit -m "xxx"
git push -u origin hexo

配置

安裝完成后抗果,我們需要配置一些我們要生成的信息筋帖,還有就是我們要部署的地址。在當(dāng)前文件夾下冤馏,你會看到一個文件叫_config.yml

vi _config.yml

里面會有一些信息日麸,例如title,author都修改成你自己的就好了。注意里面有一項是deploy,需要修改成你的repo地址和分支逮光,表示生成生個之后會push到你的repo的master分支上

deploy:
  type: git
  repo: git@github.com:username/username.github.io.git
  branch: master

其余的具體配置請參考Hexo 配置

文章

配置完成后代箭,我們嘗試一下寫一篇blog

hexo new "test"

這時候就會在 source/_post文件下生成一個 test.md的文件。

cd source/_post

vim test.md


在里面寫一點內(nèi)容睦霎,然后生成梢卸。


hexo generate -d

這時候就會生成靜態(tài)頁面并自動push到你的master分支走诞,在瀏覽器訪問username.github.io就可以看到剛才生成的blog主頁里會有這篇文章了副女。

然后同樣你可以把這些更改push到你的hexo分支上,以后別的電腦可以pull下來做更改蚣旱。

到這里碑幅,我們的博客就搭建好了,當(dāng)然塞绿,你還可以為博客設(shè)置你喜歡的主題沟涨,做一些自己的定制等等。慢慢去摸索吧异吻。

最后貼出我搭建的地址kingty.top

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末裹赴,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子诀浪,更是在濱河造成了極大的恐慌棋返,老刑警劉巖,帶你破解...
    沈念sama閱讀 206,602評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件雷猪,死亡現(xiàn)場離奇詭異睛竣,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)求摇,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,442評論 2 382
  • 文/潘曉璐 我一進(jìn)店門射沟,熙熙樓的掌柜王于貴愁眉苦臉地迎上來殊者,“玉大人,你說我怎么就攤上這事验夯〔猓” “怎么了?”我有些...
    開封第一講書人閱讀 152,878評論 0 344
  • 文/不壞的土叔 我叫張陵挥转,是天一觀的道長距误。 經(jīng)常有香客問我,道長扁位,這世上最難降的妖魔是什么准潭? 我笑而不...
    開封第一講書人閱讀 55,306評論 1 279
  • 正文 為了忘掉前任,我火速辦了婚禮域仇,結(jié)果婚禮上刑然,老公的妹妹穿的比我還像新娘。我一直安慰自己暇务,他們只是感情好泼掠,可當(dāng)我...
    茶點故事閱讀 64,330評論 5 373
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著垦细,像睡著了一般择镇。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上括改,一...
    開封第一講書人閱讀 49,071評論 1 285
  • 那天腻豌,我揣著相機(jī)與錄音,去河邊找鬼嘱能。 笑死吝梅,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的惹骂。 我是一名探鬼主播苏携,決...
    沈念sama閱讀 38,382評論 3 400
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼对粪!你這毒婦竟也來了右冻?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,006評論 0 259
  • 序言:老撾萬榮一對情侶失蹤著拭,失蹤者是張志新(化名)和其女友劉穎纱扭,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體茫死,經(jīng)...
    沈念sama閱讀 43,512評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡跪但,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 35,965評論 2 325
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片屡久。...
    茶點故事閱讀 38,094評論 1 333
  • 序言:一個原本活蹦亂跳的男人離奇死亡忆首,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出被环,到底是詐尸還是另有隱情糙及,我是刑警寧澤,帶...
    沈念sama閱讀 33,732評論 4 323
  • 正文 年R本政府宣布筛欢,位于F島的核電站浸锨,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏版姑。R本人自食惡果不足惜柱搜,卻給世界環(huán)境...
    茶點故事閱讀 39,283評論 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望剥险。 院中可真熱鬧聪蘸,春花似錦、人聲如沸表制。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,286評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽么介。三九已至娜遵,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間壤短,已是汗流浹背设拟。 一陣腳步聲響...
    開封第一講書人閱讀 31,512評論 1 262
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點兒被人妖公主榨干…… 1. 我叫王不留鸽扁,地道東北人蒜绽。 一個月前我還...
    沈念sama閱讀 45,536評論 2 354
  • 正文 我出身青樓,卻偏偏與公主長得像桶现,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子鼎姊,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 42,828評論 2 345