octopress

octopress customization

  • about分页

    1. source下新建about目录,并在里面添加index.markdown文件。
    2. 编辑导航条source/_includes/custom/navigation.html
    3. 注意:index.markdown文件需要加上头,否则会找不到。
  • 摘要

    1. 在文中加入<!--more-->来控制摘要截取位置
    2. 修改_config.yml里的excerpt_link控制连接文字,默认是readon->

欢迎你,octopress!(下)

欢迎你,octopress!(上)中提到,octopress的部署分为本地环境和博客平台这两个部分。

一、本地环境

本地环境主要是指octopress。octopress采用ruby脚本语言编写,源代码放在github上,因此,只要OS支持git和ruby就可以安装octopress。本文针对的是windows。

1.1 git

在windows中,我选择的是msysgit这个软件包。该软件包基于MSys/MinGW,它将linux中常用的命令和git打包在一起。octopress对git的版本没有要求,因此用户下载最新的版本安装即可。

1.2 ruby

在windows中,octopress的正常安装和运行依赖于以下两个组件:

安装完毕后,首先ruby.exe添加到windows操作系统的环境变量中,这样就可以在当前目录中直接使用ruby命令。

环境变量配置

接着修改gem source,因为默认的rubygems.org对于国内用户来说速度太慢,建议替换成淘宝的源:

$ gem sources --remove http://rubygems.org/
$ gem sources --a http://ruby.taobao.org/

最后安装rdocbundler这两个gem

$ gem install rdoc bundler

1.3 octopress

1.3.1 安装

$ mkdir /d/octopress
$ cd /d/octopress
$ git clone git://github.com/imathis/octopress.git
$ bundle install

1.3.2 配置

octopress的配置文件是_config.yml,用户通过它来配置博客的基本信息和第三方插件,详见octopress官方文档

1.3.3 第一篇文章

$ rake new_post["octopress on heroku"]

执行ls -al就会发现在d:\octopress\source\_posts中已经生成2012-04-08-octopress-on-heroku.markdown文档。接下来用户就可以用自己喜欢的编辑器来编辑这篇文章了。

1.3.4 预览&生成

编辑完文档后,先在本地预览一下,查看排版是否满意

$ rake preview

该命令将启动内置的网页服务器,监听端口为4000,用户可通过浏览器访问http://localhost:4000进行预览。最后生成静态网站:

$ rake generate

二、博客平台

博客平台既可以采用免费的github/heroku,也可以用VPS。我选择的是heroku。

$ gem install heroku

2.1 申请帐号

用户可在www.heroku.com上申请一个新的帐号,过程很简单,就不累述了,详情可参考heroku的官方文档。

2.2 创建一个新应用

$ heroku create linuxabc

linuxabc指的是应用名称
{: class=“info” }

至此,创建了一个基于heroku的博客平台,最后步骤就是将静态网站部署到博客平台上:

$ git add .
$ git commit -m 'site updated'
$ git push heroku master

大功告成!

三、更新博客

如何更新博客呢?

$ rake generate
$ git add .
$ git commit -m 'add <new-post-title>'
$ git push heroku master

建议将这四条语句放在一个bash脚本中,简化操作。
{: class=“info” }

四、排错

  1. 无法终止rake preview

    启用rake preview后,直接按ctrl+c无法正常终止该进程,老提示终止批处理操作吗(Y/N)?,这时候可以另开一个Git Bash窗口,使用ps aux | grep ruby命令找出pid(第一个数值),然后执行kill <pid>来停止该进程。

五、tips

  1. git restore

    我不小心将一篇source/_post/2012-04-xx-xx-xx.markdown的内容覆盖掉了,而该blog已经git push过一次,接着可以通过git checkout -- source/_post/2012-04-xx-xx-xx.markdown来恢复该文件。