程序員總是喜歡特立獨行,搞些定制化得東西才會顯得與眾不同。看膩了諸如CSDN、網易、新浪等臃腫的博客系統,搭建一個屬於自己的博客(或者是個人站點)大致成為了一個高逼格Coder的標配。最近使用 Octopress 搭建了我的個人博客,現在把內容總結出來,希望對大家有所幫助。
本文是建立在你有 Shell 指令基礎及 Git 操作基礎上。如果這部分還不了解的話,需要自己查閱文檔。
在搭建之前需要理解幾個術語:
Ruby
Ruby 是一種編程語言。Octopress 是用 Ruby語言 實現的。我們不需要對它有太多了解,只需要正確安裝 Ruby 的環境(Ruby版本必須不低於1.9.3-p0,後面會詳細介紹)及按步驟執行指令即可。
RubyGems
RubyGems(簡稱 gems)是一個用於對 Ruby組件進行打包的 Ruby 打包系統。它可以用來查找、安裝、升級和卸載軟件包。我們也是通過它安裝Octopress包的。
RVM
RVM 是 一款 Ruby 語言安裝、管理的工具。我們對 Ruby 的操作是通過它的指令完成的。
Jekyll
Jekyll 一個簡單的博客形態的靜態站點生產機器。Jekyll 有一套模板目錄,可以將 Markdown文件(或者Textile)轉換為靜態網頁,並生成一個完整的可發布的靜態網站。
同時,我們可以將產生的靜態網站布置到 GitHub Pages 上,生成個人博客站點。
想了解更多內容可以查看中文文檔。
Octopress
Octopress 是基於 Jekyll 的博客框架。他們的關系就像 jQuery 與 js 的關系一樣。
它為我們提供了現成的美觀的主題模板,並且配置簡單,使用方便,大大降低了我們建站的門檻。
GitHub
GitHub 是全球最熱的開源社區,程序界的 Facebook。它為我們提供代碼托管服務,以及我們搭建博客所需要的 Pages 服務。
GitHub Pages
GitHub Pages 是 GitHub 提供的一項服務。它用於顯示托管在 GitHub 上的靜態網頁。所以我們可以用 Github Pages 搭建博客,當然我們也可以把項目的文檔和主頁放在上面。
通過以上內容,我們大概能夠明白 Octopress 建站的原理:
我們使用基於 Jekyll 的 Octopress 站點生成工具,生成本地的靜態網站。然後將靜態網站托管到 GitHub 為我們提供的 GitHub Pages 服務上。訪問 username.github.io 即可顯示你的個人博客站了。
明白了上面這些內容,下面進行具體的搭建工作:
第一步:安裝 Ruby
打開終端,安裝 RVM ,終端執行指令:
$ curl -L https://get.rvm.io | bash -s stable --ruby
接下來我們要查看自己的 Ruby 環境
$ ruby -v
如果你的 Ruby 版本不低於 1.9.3-p0 可以忽略 Ruby 的安裝(或升級),直接跳到安裝 RubyGems 。 否則,我們執行之後的操作,終端執行指令:
$ rvm install 1.9.3 $ rvm use 1.9.3
然後安裝 RubyGems, 終端執行指令:
$ rvm rubygems latest
到這裡第一步完成。我們可以再執行一次第一條指令 ruby -v 來查看當前 Ruby 的版本了。
第二步:安裝Octopress
因為Mac系統自動git環境,所以我們不需要考慮git的安裝。直接將 Octopress的項目clone到本地,在終端執行指令:
$ git clone git://github.com/imathis/octopress.git octopress
完成後進入 octopress 的目錄
$ cd octopress
接下來,安裝依賴:
$ gem install bundler
# 這時你可能會遇到沒有權限的問題,那麼我們需要加上sudo重新執行,並輸入密碼。 $ sudo gem install bundler # 接下來執行: $ bundle install
這時你可能還會遇到問題如下:
Fetching gem metadata from https://rubygems.org/........... Resolving dependencies... Gem::RemoteFetcher::FetchError: SocketError: getaddrinfo: Name or service not known (https://rubygems.org/gems/rake-10.4.2.gem) An error occurred while installing rake (10.4.2), and Bundler cannot continue. Make sure that `gem install rake -v '10.4.2'` succeeds before bundling.
這是因為被牆了,解決辦法有兩個: 一個是,可以使用自己的翻牆工具; 另一個,淘寶做了一個gem的鏡像。我們需要在Octopress的文件目錄下找到Gemfile文件,將其中的source 'https://rubygems.org/'改為source 'https://ruby.taobao.org/'
再重新運行bundle install就可以了。 這段內容可以參考 bundle install 提示如下,是需要翻牆解決麼。
下面就可以安裝 Octopress 的默認主題了,終端執行指令:
$ rake install
這樣一個最基本的個人博客站就產生了。
可以看出,現在顯示得都是預設值,並不是我們想要的,所以需要修改Octopress目錄下的_config.yml文件。
_config.yml 文件共分為3個不發內容
Main Configs
Jekyll & Plugins
3rd Party Settings
目前,我們只需要關注第一部分Main Configs。
# ----------------------- # # Main Configs # # ----------------------- # #網站地址 url: http://aster0id.github.io #網站標題 title: Aster0id的個人博客 #網站副標題 subtitle: 每天進步一點點. #網址作者,通常顯示在頁尾和每篇文章的尾部 author: Aster0id #搜索引擎 #simple_search: http://google.com/search #網站的描述,出現在HTML頁面中的 meta 中的 description #description:
對應填入你的個人信息,其中url為必填的,一般填GitHub倉庫對應的連接,其內容大致就是 username.github.io ,這個地址我們會在後面步驟中獲得。
第三步:集成 GitHub Pages
在 GitHub 上創建一個代碼參考,項目名稱命名規則為 username.github.io,username必須與用戶名稱一致。
Ps. 在創建過程中最好不要添加忽略文件和README文件。因為我們要把本地的 git 倉庫同步到 GitHub 遠程倉庫中。如果再遠程倉庫中添加了其他文件,需要我們執行 pull 操作。除非你能非常熟練的使用 git ,否則不建議你制造不必要的麻煩。
接下來將本地代碼倉庫同步到 GitHub 上,執行終端指令:
$ ruby -v
0
它會要求你綁定遠程倉庫的地址,此時只需要輸入即可:
$ ruby -v
1
這樣就會將 Octopress 生成的靜態站點與 GitHub 進行綁定了。
之後我們創建第一篇文章:
$ ruby -v
2
生成的新文章在source/_post/目錄下,文件名構成為時間和標題的拼音。我們可以用Markdown編輯器對文章進行修改。
之後生成靜態站點,終端執行指令:
$ ruby -v
3
如果你想預覽本地的站點,可以執行終端指令:
$ ruby -v
4
此時,可以使用浏覽器打開 localhost:4000 查看效果。如果沒有問題可以將靜態站點同步到 GitHub 遠程倉庫中,終端執行指令:
$ ruby -v
5
你會發現我們的靜態站點已經被 push 到 GitHub倉庫的 master 分支上。稍等幾分鐘,訪問 username.github.io (或者 username.github.com),就會發現你的個人博客站已創建成功了。
如果你還想給自己的本地資源文件(如Markdown文件等內容)也同步到 GitHub 中,可以執行以下指令:
$ ruby -v
6
這樣我們的資源文件就會同步到 GitHub 的 source 分支了。
現在我們完成了個人博客的初級搭建,足夠滿足我們的基本需求。之後,我會補充幾篇文章,關於綁定域名、更換主題、定制主題 等內容。
希望這篇文章對你有所幫助