使用octopress搭建博客的人,大概都會喜歡寫關於如何搭建配置octopress的文章。由於它的高定製性,爲極客們帶來不少樂趣。從首頁的配置,到分類,評論,我的信息,社會化分享等的配置,內容繁多。並且這是我第二次搭建octopress環境了,發現上一次的配置有一部分不能clone到本機上。所以,把配置的過程記錄下來是十分有必要的。
個人意願是記錄配置的過程,順便整理大牛們關於這方面的一些說明。網絡上相關資料有不少,沒有實踐過的沒有摘錄在這裏。全部的代碼實現都是直接引用前輩們的。另外,本博的配置環境是linux fedora 18. html
octopress的配置均可以在官網上找到。事實上,遇到問題查詢官網文檔是最有效率的方法。 linux
登錄github網站,註冊一個用戶,假設爲grunmin。
建立一個倉庫,命名爲username.github.com,例如grunmin.github.com git
[[ -f ~/.ssh/id_rsa.pub ]] || ssh-keygen -t rsa #生成密鑰對
按默認一直確認便可。
在github賬號設置裏找到ssh的設置,添加一個ssh key。
進入~/.ssh/找到id_rsa.pub文件,把裏面的內容填到key裏,title不填。
這樣作的好處是以後push到倉庫上時能夠不用輸入密碼。 github
查看ruby版本 vim
ruby --version # 必須顯示1.9.3
安裝方法: 瀏覽器
curl -L https://get.rvm.io | bash -s stable --ruby rvm install 1.9.3 rvm use 1.9.3 rvm rubygems latest
如有顯示命名未找到,直接下載安裝便可。 ruby
在安裝octopress以前,確保已安裝git。 bash
git clone git://github.com/imathis/octopress.git octopress cd octopress gem install bundler bundle install rake install
這裏容易出現三個問題:
一、已安裝rvm和bundler,但顯示找不到命令。 markdown
用絕對路徑:/home/username/.rvm/bin/rvm /home/username/.rvm/bin/bundler
二、執行bundler install時顯示:GemfileNotFound error? 網絡
可能在安裝的過程當中退出了octopress目錄,進入後執行便可。
三、執行rake install時顯示
rake aborted! No Rakefile found (looking for: rakefile, Rakefile, rakefile.rb, Rakefile.rb)
同理,進入安裝目錄便可。
rake setup_github_pages
此時會要求輸入倉庫的url,能夠在github倉庫內容業的右下角找到。
例如個人是git@github.com:grunmin/grunmin.github.com.git
成功後便可用
rake new_post["title"]
生成新文章,文章在source/_post/目錄下,文件名構成爲時間和標題的拼音。以後執行
rake generate rake preview
此時能夠預覽(瀏覽器打開localhost:4000可看到效果。)若是沒有問題,則執行
rake deploy git add . git comment -m "comment" git push origin source
保存到倉庫。
須要注意的是執行git命令時應處於octopress目錄,而且checkout到source分支,
cd octopress git checkout source git add . git commit -m "comment" git push origin souce
找到博客倉庫的url,執行
git clone -b source (url) octopress #把source 克隆到本地octopress目錄上
cd octopress git clone (url) _deploy #克隆master分支,它存放着博客內容。
gem install bundler bundle install rake install rake setup_github_pages
以後操做同上,有問題照葫蘆畫瓢。
一、增長category_list插件
將下面的代碼寫到plugins/category_list_tag.rb
module Jekyll class CategoryListTag < Liquid::Tag def render(context) html = "" categories = context.registers[:site].categories.keys categories.sort.each do |category| posts_in_category = context.registers[:site].categories[category].size category_dir = context.registers[:site].config['category_dir'] category_url = File.join(category_dir, category.gsub(/_|\P{Word}/, '-').gsub(/-{2,}/, '-').downcase) html << "<li class='category'><a href='/#{category_url}/'>#{category} (#{posts_in_category})</a></li>\n" end html end end end Liquid::Template.register_tag('category_list', Jekyll::CategoryListTag)
二、增長側邊欄
將下面的代碼寫到source/_includes/asides/category_list.html
<section> <h1>Categories</h1> <ul id="categories"> {%raw%}{% category_list %}{%endraw%} </ul> </section>
修改config.yml文件,找到default_asides:
在中括號內添加 `asides/categorylist.html`
添加的位置決定在頁面顯示的位置,注意用逗號隔開。
用vim編輯器粘貼的話可能會自動縮進,啓用粘貼模式或用其餘編輯器便可。
octopress 產生靜態網頁,不支持評論功能,因此咱們用第三方評論系統。好消息是octopress已爲咱們配置好了Disqus,咱們只須要稍微填寫如下信息便可。
一、首先在Disqus 註冊一個賬號,點擊添加到個人網頁,添加站點信息,好比個人grunmin.github.io
二、修改_config.yml文件,找到這一段:
# Disqus Comments disqus_short_name: disqus_show_comment_count: false
添加你的disqus用戶名,並把false修改爲true便可。注意冒號後面有空格。
此外,能夠用國內的多說系統,速度較快,且比較符合景德鎮村民的須要。以前我用的就是這個,可是沒有記錄配置過程,此次克隆時多說系統沒有成功啓動,所以不折騰了,有須要的話能夠自行谷歌。
導航欄的設置在source\_includes\custom\navigation.html
咱們能夠將Blog和Archives修改成首頁和歸檔,也能夠在此添加一個標籤頁,此時應使用命令rake new_page['about']建立一個頁面,頁面路徑爲source\about\index.markdown;
修改後的文件以下:
<ul class="main-navigation"> <li><a href="{{ root_url }}/">首頁</a></li> <li><a href="{{ root_url }}/blog/archives">歸檔</a></li> <li><a href="{{ root_url }}/about">關於</a></li> </ul>
持續更新…………