歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux基礎 >> 關於Linux

centos下配置jekyll教程

今天老婆心血來潮說不喜歡wordpress了,然後換個j開頭的ooxx全靜態blog。當時就暈了,就一個字母怎麼找?!過了好一會才告訴我叫"jekyll"。好吧,完全沒聽過。。。可是為了老婆還是要改~ 我太愛老婆了~

官網來一發:http://jekyllrb.com/

從網址就能看出來跟ruby脫不了干系,果然它的推薦安裝方法就是用的gem,而且也灰常簡單:
gem install jekyll


把上面的命令輸進去,結果gem給爆了一堆錯,網上各種搜索無果後決定采用升級大法(vps上面的ruby為1.8.7)

也不敢選太新的,就1.9.3-p429好了(0 0!)。裝完過後,這下gem就沒報錯了(gem運行報“yaml”相關錯誤可以嘗試安裝epel-release)

選一個存放jekyll的目錄執行:
~# jekyll new xxx-site ##生成新的jekyll目錄
~# cd xxx-site
~# jekyll serve ##本地運行jekyll


這時可以訪問http://localhost:4000測試運行是否成功。由於jekyll不需要php,mysql等亂七八糟的東西,所以到這裡jekyll的配置就完了!(果然夠簡單!)

vps上本身就裝有nginx,所以webserver的任務就交給它了。

給nginx新建一個vhost文件,比如我的:
log_format xxx.me '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" $http_x_forwarded_for';
server
{
listen 80;
server_name xxx.me;
index index.html;
root /home/wwwroot/xxx.me/_site;
access_log /home/wwwlogs/xxx.me.log xxx.me;
}


這裡需要注意的是,jekyll的根目錄是./_site ,不是./ (這個點被坑了好久。。。)

然後reload一下nginx就好了。

jekyll的配置文件在./_config.yaml ,具體配置請看:傳送門

一般來說,用markdown寫好的文章是傳到./posts裡,由jekyll生成到./site裡面。怕麻煩的話,可以運行server時加入參數-w :
jekyll server -w


這樣jekyll就會自動更新網站了。(趕腳就是一個hook,秒更!)

2013-12-04 update:

新建post的正文字段如果包含中文,則Jekyll在解析的過程中會提示解析錯誤。

在jekyll目錄下,convertible.rb文件中:
self.content = File.read(File.join(base, name))


File.read()可能采用系統默認編碼讀取文件,中文系統為GBK,但markdown文件均為utf-8編碼,所以將代碼修改為:
self.content = File.read(File.join(base, name), :encoding => "utf-8")


即可正常處理包含中文的post。

同時jekyll默認的markdown解析器maruku對中文的支持不是很好,所以改用RDiscount。

安裝rdiscount:
gem install rdiscount


設置rdiscount:

在_config.yml文件中,添加一行:
markdown: rdiscount

 

Copyright © Linux教程網 All Rights Reserved