Build My Blog

Octopress

在网上搜索了一些资料后,搭建了现在的这个博客。兴奋之余,想跟大家分享下如何创建属于自己的博客的方法,所以写了这篇博文。(本篇博文主要参考了破船之家唐巧的技术博客的两篇博文,大家可以多多关注下,本人是挺喜欢的这两个博客的。)

安装Ruby

Octopress需要Ruby环境,RVM(Ruby Version Manager)负责安装和管理Ruby的环境。
所以我们先在终端输入如下命令,来安装RVM:

bash
1
$ curl -L https://get.rvm.io | bash -s stable --ruby

接着是安装Ruby,在终端依次运行如下命令:

bash
1
2
$ curl -L https://get.rvm.io | bash -s stable --ruby
$ rvm install

完成上面的操作之后,运行ruby --version应该可以看到ruby的版本,那就代表Ruby环境已经安装好了。

详情请参考:Installing Ruby with RVM

安装Octopress

在安装Octopress之前,请确保你的电脑上已经安装有git了,在终端输入git --version,应该可以看到电脑中的git版本,如果没有显示相关内容,请先安装git。

git安装之后,利用git命令将octopress从github上clone到本机,如下命令:

bash
1
2
3
$ git clone git://github.com/imathis/octopress.git octopress
$ cd octopress
$ ruby --version

接着安装相关依赖项:

bash
1
2
3
$ gem install bundler
$ rbenv rehash # If you use rbenv, rehash to be able to run the bundle command
$ bundle install

最后安装默认的Octopress主题。

bash
1
$ rake install

详情请参考:Octopress Setup

配置Octopress

Octopress的作者已经尽量让配置简化了。大多数情况下只需要配置_config.yml和Rakefile文件即可。其中Rakefile是跟博客部署相关,一般情况下并不需要修改这个文件,除非使用了rsync。

_config.yml是博客重要的一个配置文件,在_config.yml文件中有三大配置项:Main Configs、Jekyll & Plugins和3rd Party Settings。

注意,_config.yml文件中其中url是必须要填写的,这里的url是在github上创建的一个仓库地址,具体请看第四步中创建的地址。另外再修改一下title、subtitle和author,根据需求,在开启一些第三方组件服务。

关于_config.yml文件中的更多内容,请看这里的内容:Configuring Octopress
建议:最好把里面的twitter相关的信息全部删掉,否则由于GFW的原因,将会造成页面load很慢。同理,修改定制文件/source/_includes/custom/head.html,把google的自定义字体去掉。这是根据唐巧的博文中—配置

将博客部署到Github

Github的Page service可以免费托管博客,并且还可以自定义域名。
首先需要在GitHub上创建一个仓库,并将仓库名称按照这样的方式进行命名:username.github.comorganization.github.com(注意:这里的username必须跟你github的账户名一样。)。

等后面配置完毕之后,我们就可以在浏览器中使用页面地址http://username.github.com来访问我们的博客。一般来说,我们希望在将博客的源码放到source分支下,并把生成的内容提交到master分支。

创建好仓库之后,我们需要利用octopress的一个配置rake任务来自动配置上面创建的仓库:可以让我们方便的部署GitHub page。在终端输入如下命令:

bash
1
$ rake setup_github_pages

上面的命令会做一些事情(详细介绍看下面给出的参考链接)。其中最主要的就是创建一个_deploy目录,目录用来存放部署到master分支的内容。期间会要求你输入仓库的url,根据提示,进行输入即可。
完成上面的命令之后,我们就可以生成博客并真正的部署到仓库中了。执行如下命令:

bash
1
2
$ rake generate
$ rake deploy

上面的命令首先生成博客文件,并将生成的博客文件拷贝到_deploy/目录下,然后将这些内容添加到git中,并commit和push到仓库的master分支。
现在可以访问http://username.github.com了。

至此,我们的博客已经完成基本的部署,不过博客的source需要单独提交,执行如下命令就可以将source提交到仓库的source分支下。

bash
1
2
3
$ git add .
$ git commit -m 'Initial source commit'
$ git push origin source

如果在部署到仓库之前,需要先预览一下博客,可以在终端输入rake preview命令,然后就能在浏览器中进行本地预览访问了:http://127.0.0.1:4000/http://localhost:4000/,效果跟仓库中的一样。

参考:Deploying to Github Pages

撰写博客

我们一般撰写博客,主要是用到了下面这几个命令

bash
1
2
3
4
5
rake new_post[‘article name’],生成博文框架
rake generate,生成所需的静态文件
rake watch,实时检测文件变化并生成新内容
rake preview,本地预览
rake deploy,发布文件

这些命令的详细介绍可以参看Blogging Basics

所有的博文都必须存储在source/_posts目录下,并且需要按照Jekyll的命名规范对文章进行命名:YYYY-MM-DD-post-title.markdown。文章的名字会被当做url的一部分,而其中的日期用于对博文的区分和排序。

通过Octopress提供的task可以正确的按照命名规范创建一个博文,并且在博文中会附带常用的一些yaml元数据。只需要在终端输入如下命令:

bash
1
rake new_post["title"]

其中title为博文的文件名,创建出来的文件默认是markdown格式。上面的命令会创建出这样一个文件:source/_posts/2013-08-03-title.markdown

注意,如果你使用了oh-my-zsh,可能会出现zsh: no matches found: new_post[title],则你需要在.zshrc文件中加入alias rake="noglob rake",详情请参考Not compatible with Zsh

接着我们就可以在这个文件中写我们的博文啦。完成之后,我们可以预览和部署博文。下面是创建并部署博文的一个完整过程:

bash
1
2
3
4
5
6
$ rake new_post["New Post"]
$ rake generate
$ git add .
$ git commit -am "Some comment here."
$ git push origin source
$ rake deploy

详情参考:Blogging Basics

额外配置

评论和分享功能

这里主要介绍在默认主题下如何添加评论和分享功能。步骤如下:

  • 在_config.yml中增加一项: weibo_share: true
  • 修改 source/_includes/post/sharing.html ,引入post/weibo.html
  • 增加文件:source/_includes/post/weibo.html
  • 访问http://www.jiathis.com/,获取分享的代码
  • 访问http://uyan.cc/,获得评论的代码
  • 将上面2步的代码都加入到weibo.html中即可

更换主题

下面以本篇博文使用的cotoflat主题来讲解如何更换Octopress的主题,这里使用的主题的相关内容可以到这里了解octoflat

bash
1
2
3
4
$ cd your_octopress_dir
$ git clone https://github.com/alexgaribay/octoflat .themes/octoflat
$ rake install['octoflat']
$ rake generate

几乎所有的主题的更换方法都基本如上几个步骤,有兴趣的读者可以到这里来看看是否有自己喜欢的主题