以前一直在用 Tumblr 作为 blog 托管,因为简单,还不用管流量、图片托管等问题,也支持自定义域名,不过最近开始满足不了我的一些需求:
- 非 Photo 类型的文章难插入多张图片,通常都是用别的图床来放置图片,比如 Droplr;
- CSS/JS 的处理比较郁闷。
所以就打算迁移到 GitHub + Octopress 上,虽然所有东西都是公开的。
附 Octopress 简单教程:
第一步,在 GitHub 创建一个新的 repo,将其命名为 "username.github.com","username" 是你的用户名。
第二步,创建好之后,去 admin 页面选择 "Automatic Page Generator"。
第三步,安装 Octopress:
git clone git://github.com/imathis/octopress.git octopress
cd octopress # 保证安装了 Ruby 和 rbenv/RVM,进入目录时会问你是否信任 .rvmrc,选是
gem install bundler
# rbenv 需要跑 `rbenv rehash`
bundle install
rake install
rake setup_github_pages # 填入你的 repo 地址
rake generate
一些常用的操作如下:
rake new_post["title"]
:创建新的文章,title
尽量用英文吧,Mac Terminal 打中文会报错。创建的文章会用时间戳的方式,如 2012-11-02-moved-from-tumblr.markdown
保存到 source/_post
下,用任意编辑器打开即可。
rake new_page[page-name]
:创建新的页面,比如个人简介什么的,会放在 source/page-name
下,默认主页是 index.markdown
。
rake generate
:把所有文件转换并复制到 public/
下面。rake watch
会监视文件并实时转换。
rake preview
:启动一个 localhost:4000
服务器供预览。
rake deploy
:如果没问题了,就用这个命令把文件提交到 GitHub。
因为这个 repo(按照上面的例子是 octopress)和你的 GitHub pages 并不是同一个 repo,所以你可以再建一个 repo,把东西提交上去,这样也方便你写草稿,还可以用 Bitbucket 的免费私有 repo。
如果执行 rake new_post
或 rake generate
时碰到了类似 invalid byte sequence in US-ASCII (ArgumentError)
的问题,编辑一下这两个文件:
# rvm-path/gems/ruby-version/gems/jekyll-version/lib/jekyll/tags/include.rb
# 把 source = File.read(@file) 改成:
source = File.read(@file, :encoding => "utf-8")
# rvm-path/gems/ruby-version/gems/jekyll-version/lib/jekyll/convertible.rb
# 把 self.content = File.read(File.join(base, name)) 改成:
self.content = File.read(File.join(base, name), :encoding => "utf-8")
根据你的配置,把 rvm-path
,ruby-version
和 jekyll-version
改成实际的路径。一般情况,rvm-path
是 ~/.rvm/
。
或者在你的 .bashrc
、.zshrc
等文件加入以下两个变量:
export LC_ALL=en_US.UTF-8
export LANG=en_US.UTF-8
这个问题是由于 Python 2.X 并没有把 Unicode 作为默认编码格式,Jekyll 也没有声明要用 Unicode 处理文件。