Hello Octopress

这个网站使用 Octopress 架设,并通过免费的 Heroku 部署到网上。

第一次使用 Octopress,就发现“回不去了”!

看到 Octopress 让我觉得很惊艳,用 Markdown 语法很快写好一篇博文,接着用 rake generate 就能很快的生成整个网站并迅速 deploy 到 GitHub , 就像在 Coding 一样快乐无比, 很有亲切感。

这里有 Octopress 的介绍 -(中文),以及安装教程 - (中文)。

自己在安装和使用的过程中也遇到了一些问题,在此记录一下。

安装环境

  • win 7 sp1
  • Apatna Studio 3 (自带 git)

下载 Ruby 以及开发工具 DevKit

安装 Ruby & DevKit

安装完 ruby 后会自动将其路径添加至系统变量的 PATH 中,否者需手动添加。Win + R 键入 cmd 打开命令行 输入 ruby -v 确认 ruby 是否已成功安装。

安装完 DevKit 进入目录会发现两个 bat 文件都打不开,进入编辑后发现一句

rem A value similar to C:\msys\1.0\bin is what the "Start in:" field needs

就依照提示在 C 分区下创建目录路径 msys/1.0,再将文件都转移其中,这回 msys.bat 可以启动了。

重头戏,安装 Octopress

打开 Aptana,新建 Ruby Project,Generate APP 选项中选择 Clone a existing git project,然后在 Location 中填入

git://github.com/imathis/octopress.git

这个时候 Aptana 工作区面板里的 Terminal 是无法 ruby --version 成功的,别着急,先启动下 path/to/ruby/bin 目录下的 ruby.exe 即可。

我一开始尝试在此 Terminal 中输入命令来安装 Octopress 所需的 bundle,后来发现不行,非得要用 DevKit 才能装上,估计要编译什么的吧。

那好,就先打开 DevKit,cd 定位到你新建的 Ruby Project,也就是 Octopress 主程序。

安装依赖包

gem install bundler
bundle install

安装默认主题

rake install

配置 Octopress

关于网站的信息都可在 _config.yml 里的到配置,具体的可参见这里

本地预览

从这步开始,可以用 Aptana 中的 Terminal 更加方便的输命令行了。

rake generate
rake preview

即可在 localhost:4000 中预览你的 Octopress 了。

Bug 1: 关于 “Could not determine content-length of response body. Set content-length of the response or set Response#chunked = true” 的警告,解决方法如下:

打开 path/to/ruby/lib/ruby/1.9.1/webrick/httpresponse.rb 搜索以上错误内容,定位到

if chunked? || @header['content-length']

一般是 Line 205,将其改为

if chunked? || @header['content-length'] || @status == 304 || @status == 204

部署 Heroku

你得先有个 Heroku 账号,注册一个

Aptana Studio 3 中自带了 Heroku 图形化的插件,只需 Run Web Demployment Wizard,按照提示配置即可。

你也可以自己手动配置,这也许更加有趣:

gem install heroku

# 创建一个 heroku app
heroku create

# 这里你可以重命名你的 heroku app
heroku rename newname

# 登陆 heroku,需填 email 和 password
heroku login

# 添加你的 SSH Key,后可跟路径,例如 /Users/Administrator/.ssh/id_rsa.pub
heroku keys:add

关于如何生成 SSH Key,请看这里

编辑 .gitignore 去除 public,否则生成内容无法部署到 Heroku 上。

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

发表文章

只需一句

rake new_post["title"]

生成的 Source/_posts/ 下的 markdown 即为文章内,你可以用 Liquid 语法来编辑它。

关于 Markdown 的更多介绍,请看这里 - (中文)。

Bug 2: 关于中文字符的问题,解决方法如下:

打开 path/to/ruby/lib/ruby/gems/1.9.1/gems/jekyll-0.11.0/lib/jekyll/convertible.rb,找到

self.content = File.read(File.join(base, name))

修改为

self.content = File.read(File.join(base, name), :encoding => "utf-8")

在 windows 平台上,还有一些特殊的错误。

Bug 3: 关于 jekyll 的 “invalid byte sequence in GBK (ArgumentError)” 错误,你可能需要在命令行下改变当前代码页到 UTF-8:

chcp.com 65001

Bug 4: 关于语法高亮无法使用报 “Liquid error: No such file or directory - python -c ‘import sys; print sys.executable’” 错误的解决方法:

  1. 安装 python for windows (不推荐安装 3.3 版本的);
  2. 下载这个文件
  3. 用下载文件替换 path/to/ruby/lib/ruby/gems/1.9.1/gems/rubypython-0.5.1/lib/rubypython 目录下的同名文件;
  4. 记得重启电脑 :)

参考文章(部分地址需 FanQ1ang)

View on GitHub