phoenix-powerOctopressをアップデートすることで、無事、ビルドできました。

Octopress Update

時間があったので、Octopressのアップデート及び、プラグインの修正などを行いました。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
# octopress-update
$ git clone git://github.com/imathis/octopress.git octo-new

$ cd octo-new

$ rvm use 1.9.3

$ gem i bundler

$ bundle

$ rake install

$ rake preview
C-c

# octopress-origin-template
$ cd ..

$ git clone https://github.com/syui/syui.github.io

$ mv syui.github.io octo-old

$ cd octo-old

$ git checkout theme

$ rm -rf ../octo-new/{sass,source}

$ cp -rf {sass,source} ../octo-new

$ cat Gemfile >> ../octo-new/Gemfile

$ cd ../octo-new

$ vim Gemfile
# ここで古いもの、不要なものを削除

$ bundle

$ rake generate

# エラーがでるので、必要なプラグインを置く
$ cp ../octo-old/plugins/{appbox.rb,tag_cloud.rb,tab_generator.rb,tocGenerator.rb} ./plugins/

# popular_posts.rbがエラーを出す
$ cp ../octo-new/plugins/popular_posts.rb ./plugins/

今回遭遇したエラーは主に以下のような感じ。

1
2
3
4
5
1. ruby_executable_hooks:15: stack level too deep (SystemStackError)
        plugins/popular_posts.rb L157 alias_method comment-out.

2. Error: Pygments can't parse unknown language: </p>.
        plugins/pygments_code.rb L27  raise "Pygments can't parse unknown language: #{lang}#{code}."

解決方法は2行目に載せてありますが、単純に、1.がコメントアウトと、.analytics-cacheを持ってくることで解決。

2.は、コードを編集し、rake genして結果を見ることで、問題の記事を探しだし、取り除くことで解決しています。

ちなみに、popular_posts.rbは、Shellの環境変数が必要だったり、Google APIのシークレットキーである.google-api.yamlが必要だったりと、いろいろと必要なものが多いプラグイン。

これは、主に、Google Analyticsからアクセス数の多い記事を取得し、サイドバーにするものです。

結構時間かかりましたが、OctopressのUpdateは終了です。デプロイしてみます。

追記

デプロイが実行できたので、追記します。Rakefileを一部修正し、自分のブログに合った設定にします。ちなみに、ブログをGitHubにホスティングする際は、user.github.ioのリポジトリは、masterのブランチに、それ以外のリポジトリでは、gh-pagesのブランチにpushすることになるかと思います。

Rakefile
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
# deploy command
deploy_branch = "master"
deploy_default = "push"

# rake post...
puts "Creating new post: #{filename}"
  open(filename, 'w') do |post|
    post.puts "---"
    post.puts "layout: post"
    post.puts "title: \"#{title.gsub(/&/,'&amp;')}\""
    post.puts "date: #{Time.now.strftime('%Y-%m-%d %H:%M:%S %z')}"
    post.puts "comments: true"
    post.puts "categories: hack
    post.puts "tags: "
    post.puts "---"

    post.puts '<img src="{{ root_url }}/images/more.png" alt="phoenix-power" align="left"><!--more--><br clear="all">'
  end

で、deployする際は、.gitbranch-masterにして_deployに置いとくとよいです。自分の場合は、GitHubのpublic-repoからテンプレートを持ってきたので、それをコピーして使いますが、イチからinitして作っても同じです。

1
2
3
4
5
6
7
8
9
10
11
12
13
$ ls
.git

$ git branch
theme

$ mkdir _deploy

$ cp -rf .git _deploy

$ cd _deploy

$ git checkout master