使用Jekyll在Github上搭建我的博客(環境搭建)

我的博客原文傳送門css

以前曾經使用nodejs寫了一個博客系統,可是偷偷用的公司服務器。無奈被發現了,o(╯□╰)o,被勒令下線了以後只能想其餘方法寫博客了。本來是想換個地方搭建,因而找百度的同窗要了個BAE的nodejs權限,可是搶不到配額,呵呵呵...因而乎就想到了Github上使用靜態頁面搭建博客的方法html

##爲何是Jekyll+github?

官網首頁 上的描述是: Transform your plain text into static websites and blogs。Jekyll將原始文本根據必定規則轉換成靜態的網頁和博客。但這個轉換並非簡單的字符串替換就了事了,而是首先讀取各個文件中的內容,根據配置文件中描述的參數在內存中構建一個巨大的對象存儲整個博客的信息,而後再將這些信息根據配置文件中定義的輸出方式來生成具體的HTML文件。整個項目是由Ruby寫的,因此若須要在本地調試則須要安裝Ruby。node

使用Jekyll搭建博客有幾個好處:
1. 不須要使用額外的數據庫
2. 支持markdown,liquid,以及原始的html、css
3. 能夠定義模板,並在模板上進行代碼複用
4. github對其支持,能夠直接在github上搭建,能夠繼承github上的各類好處(版本控制,免費,無流量限制)
5. 有不少擴展插件(可是在github上用不了,github不容許用戶使用擴展插件,大概是出於安全性考慮)git

固然缺點也有不少:
1. 生成的是靜態網頁,沒法動態加載,若須要外部服務如評論,只能使用相似於disquz,多說這樣的外部插件了
2. 僅僅適合小型網站,不適合大中型網站
3. 沒有數據庫及服務端的邏輯github

因而可知,用來搭建我的博客至關合適(github版本控制,免費,無流量限制,支持markdown,無需關心服務器端邏輯和數據庫)web

##本地安裝Jekyll

首先安裝Ruby及gem

  1. RubyInstaller下載ruby,若是有經驗的能夠直接從Ruby官網進行下載,前者安裝比較無腦,會有一些額外的依賴包進行安裝,版本也較低,而Ruby官網的版本則相對較高,可是沒有額外的依賴包。下載的時候版本選較高一些的,不然會有bug,我選擇的是2.0.0p353(2013-11-22)。安裝的時候記得勾選添加環境變量。shell

  2. 安裝devkit,RubyInstaller頁面中往下拉就能看到。選擇本身版本的Ruby對應的devkit,下載並解壓,而後執行:數據庫

cd devkit
ruby dk.rb init
ruby dk.rb install

這樣就完成ruby環境的安裝了windows

  1. 安裝gem,這個也能夠去gem的官網進行下載,而後直接安裝就好了,安裝完成後使用gem -v查看一下是否安裝成功。我安裝的是2.1.11版本安全

  2. gem是能夠選擇源的,默認的源有點慢,可使用ruby.taobao.org的源,方便快捷
    查看當前源

D:\node\jekyll>gem sources list
*** CURRENT SOURCES ***

https://rubygems.org/

D:\node\jekyll>

添加新源

gem sources -a http://ruby.taobao.org/

刪除默認源

gem sources --remove https://rubygems.org/

再次查看的時候保證只有http://ruby.taobao.org/就好了

若是上面出錯,去網上找找教程吧,ruby環境的搭建和gem的安裝教程仍是蠻多的,基本google一下遍地都是。

使用gem安裝Jekyll

使用命令gem install jekyll就能夠安裝jekyll及全部須要的依賴,但不包括插件,安裝jekyll的時候須要注意一下安裝的版問題,jekyll的最新版本爲1.4.3,可是有一個bug,stackoverflow上有人遇到過,我本身在使用的時候也遇到了相似的問題,解決方法是安裝1.4.2版本,因此這裏的安裝命令爲:gem install jekyll --version "=1.4.2"。安裝完成後使用jekyll -v查看一下是否安裝成功了

Jekyll在windows下的字符集問題

這個問題較多人遇到過,主要是在啓動jekyll服務器的時候出現,以及一些中文文件名上出現,能夠參考網上的解答:
1. windows下本地jekyll博客搭建手記
2. Jekyll 本地調試之若干問題
3. 在Windows下使用jekyll如何避免出現中文字符集錯誤

在這裏,我僅僅是改了git bash的字符集,並無去改jekyll的源文件,由於self.content = File.read(File.join(base, name))語句已經變了,不敢隨便改。中文文件名的問題則經過改成全英文文件命名來避開,category裏中文的問題則經過修改Permalinks來避開,這些後面會詳細介紹

相關文章
相關標籤/搜索