GitHub Pages で Octopress を使う

# 1. 事前準備

## username.github.io リポジトリの作成

githubで予めリポジトリを作成しておいてください。

```bash
$ git clone git@github.com:USERNAME/USERNAME.github.io.git
$ cd USERNAME.github.io.git
```

## 環境

- Mac OS X 10.10
- Homebrew 0.9.5

## 依存パッケージをインストールする

[Octopress Setup - Octopress](http://octopress.org/docs/setup/) を参考に進めます。

- Ruby = 1.9.3
- Bundler
- Octopress
- git

### Ruby

1. [sstephenson/rbenv · GitHub](https://github.com/sstephenson/rbenv#installation) の通りに rbenv をインストールします。

    ```bash
    $ git clone https://github.com/sstephenson/rbenv.git ~/.rbenv
    $ cat <<'_EOT_' >> ~/.profile

    # rbenv
    export PATH="${HOME}/.rbenv/bin:${PATH}"
    eval "$(rbenv init -)"
    _EOT_
    $ source ~/.profile
    ```

    ここまで上手く行くとこんな出力が出る

    ```bash
    $ type rbenv
    rbenv is a function
    rbenv () 
    { 
        local command;
        command="$1";
        if [ "$#" -gt 0 ]; then
            shift;
        fi;
        case "$command" in 
            rehash | shell)
                eval "`rbenv "sh-$command" "$@"`"
            ;;
            *)
                command rbenv "$command" "$@"
            ;;
        esac
    }
    ```
3. 続けて [ruby-build](https://github.com/sstephenson/ruby-build#readme) のインストール

    ```bash
    $ git clone https://github.com/sstephenson/ruby-build.git ~/.rbenv/plugins/ruby-build
    ```
4. いよいよ ruby のインストールです。今回は 1.9.3-p550 を入れます。ビルドするのでそれなりに時間がかかります。
ちなみにインストール可能なリストは `rbenv install -l` で出せます。

    ```bash
    $ rbenv install 1.9.3-p550
    ```
5. インストールが終わったらインストールしたバージョンを有効にします。

    ```bash
    $ rbenv versions
    * system (set by ${HOME}/.rbenv/version)
      1.9.3-p550
    $ rbenv global 1.9.3-p550
    $ rbenv versions
      system
    * 1.9.3-p550 (set by ${HOME}/.rbenv/version)
    ```

### Bundler

gemでインストールします。

```bash
$ rbenv exec gem update
$ rbenv exec gem install bundler
Fetching: bundler-1.7.4.gem (100%)
Successfully installed bundler-1.7.4
1 gem installed
Installing ri documentation for bundler-1.7.4...
Installing RDoc documentation for bundler-1.7.4...
$ rbenv rehash
```

# 2. Octopress のインストール

## gitリポジトリからclone

```bash
$ git clone git://github.com/imathis/octopress.git octopress
$ cd octopress
$ rbenv local 1.9.3-p550
$ bundle install --path vendor/bundle
$ bundle exec rake install
```

## GitHub Pagesとの連携

```bash
$ bundle exec rake setup_github_pages
Enter the read/write url for your repository
(For example, 'git@github.com:your_username/your_username.github.io.git)
           or 'https://github.com/your_username/your_username.github.io')
Repository url: git@github.com:USERNAME/USERNAME.github.io.git
Added remote git@github.com:USERNAME/USERNAME.github.io.git as origin
Set origin as default remote
Master branch renamed to 'source' for committing your blog source files
rm -rf _deploy
mkdir _deploy
cd _deploy
Initialized empty Git repository in /Users/nobuho/Documents/blog/octopress/_deploy/.git/
[master (root-commit) 42117e8] Octopress init
 1 file changed, 1 insertion(+)
 create mode 100644 index.html
cd -

---
## Now you can deploy to git@github.com:USERNAME/USERNAME.github.io.git with `rake deploy` ##
$ bundle exec rake generate
$ bundle exec rake deploy
```

数分待つと http://USERNAME.github.io/ で表示されます。

## 設定

[Configuring Octopress - Octopress](http://octopress.org/docs/configuring/) に従いながらブログのタイトルなどを設定します。

```bash
$ vi _config.yml
```

## Hello, world

```bash
$ bundle exec rake new_post["hello"]
mkdir -p source/_posts
Creating new post: source/_posts/2014-11-02-hello.markdown
cat <<_EOT_ > source/_posts/2014-11-02-hello.markdown
---
layout: post
title: "hello"
date: 2014-11-02 19:43:59 +0900
comments: true
categories: [test]
tags: [test]
---

Hello, world!

_EOT_
```

## Preview

```bash
$ bundle exec rake preview
```

http://127.0.0.1:4000/ で確認できます。
Jekyllと違って初期状態でテンプレートがあるのが嬉しい。

## 公開

テスト投稿を作ったので再度デプロイします。

```bash
$ bundle exec rake generate
$ bundle exec rake deploy
```

しばらく待つと github.io でアクセスできるようになります。
http://USERNAME.github.io/blog/2014/11/02/hello/

## Sourceのコミット

忘れずにSourceファイルもコミットしておきます。

```bash
$ git add .
$ git commit -m "post hello"
$ git push -u origin source
```

# 参考

- [Octopress Documentation - Octopress](http://octopress.org/docs/)
- [エンジニアのブログは Octopress が最適 - 白山軟件有限公司](http://blog.shiroyama.us/blog/2014/02/26/octopress/)