Windows環境で GitHub + Octopress のインストール

年末年始の時間を利用して[GitHub](https://github.com/) + [Octopress](http://octopress.org/)でブログ作成。  

## インストール環境

Windows 7 (64bit) service pack 1  
たぶんCygwinを使ったほうが楽です

## Ruby環境のインストール

Octopressを利用するにはRuby(*1.9.3以降*)とDevelopmentKitが必要なのでインストールします。  
[参考記事(Windows環境にoctopressをインストール)](http://mymemo.weby117.com/static/octopress_1.html)  
↑このページのほぼパクリです

[Ruby Installer公式サイト](http://rubyinstaller.org/downloads/)から  
- Ryby 1.9.3-###.exe (2014.01.02 現在 p484)  
- DevKit-tdm-32-###.exe (4.5.2-20111229-1559-sfx)  
をダウンロード。  
Rubyのインストール先を`C:\Ruby193`として、実行パスを通しました。  
DevelopmentKitは`C:\RubyDevKit`に解凍し、コマンドプロンプトから以下を実行。  
```
> cd C:\RubyDevKit
> ruby dk.rb init
> ruby ruby dk.rb install
```

## Gitのインストール

1. GitHubのアカウントを取得
2. (任意)[GitHub Windows](http://windows.github.com/)をインストール。  
3. [GitHub Pages](http://pages.github.com/)を参考にリポジトリの作成。usernameはアカウント名に適宜変更

```
> git clone https://github.com/username/username.github.io
> git checkout master
> cd username.github.io
> echo "Hello World" > index.html
> git add -all
> git commit -m "Initial commit"
> git push
```

ブラウザで`http://username.github.io`にアクセスして`Hello World`が出るのを確認。commitが反映されるには数分かかるみたい。  
以下は、`GitHub Windows`の`Git shell`を利用します。

## octopressのインストール

### octopress, bundle, rakeのインストール
```
> git clone git://github.com/imathis/octopress.git octopress
> cd octopress 
> gem install bundler
> bundle install 
> rake install
```
`rake install`で`rake aborted`が出る場合は、`bundle update`を実行。

### Rakefileの修正

`Rakefile`の349行目近辺を修正

```
system "echo 'My Octopress Page is coming soon &hellip;' > index.html"
↓↓
system "echo 'My Octopress Page is coming soon ;' > index.html"
```

### jekyllの修正

Windowsの場合、文字コードがSJISなので、UTF-8としてファイルを読むように

c:/Ruby193/lib/ruby/gems/1.9.1/gems/jekyll-0.12.0/lib/jekyll/convertible.rb 

の28行目近辺を以下のように修正

```
def read_yaml(base, name)
  # self.content = File.read(File.join(base, name))
↓↓
def read_yaml(base, name)
  self.content = File.read(File.join(base, name), :encoding => Encoding::UTF_8) # add
```

### 記事の作成

新しいブログ記事を作るには

```
> rake new_post["test post"]
```

を実行すると、`source/_posts/YYYY-mm-DD-test-post.markdown`ができるので、それをMarkdown形式で編集。  
日本語のタイトルの場合、上記のnew_postした後に
```
---
layout: post
title: "test post"
date: 2014-01-02 11:41:22 +0900
comments: true
categories: 
---
```  

のtitleを日本語にする。  
タイトル・記事の文字コードはUTF-8にしないとだめ。  
作成した記事を見るには

```
> rake preview
```
として[http://localhost:4000/](http://localhost:4000/)にアクセスする。

### deploy(GitHubで記事を公開する)

[Deploying to GitHub Pages](http://octopress.org/docs/deploying/github/)を参考にすれば良いはずだったが、今回の一番のハマりポイント  

```
> rake setup_github_pages
```

でリポジトリ`git@github.com:username/username.github.com`を入力すると、スクリプトで自動処理するはずなのだが、

```
Fatal: remote origin already exists
```

と出る場合、以下を実行

```
> git remove -v
octopress       git://github.com/imathis/octopress.git (fetch)
octopress       git://github.com/imathis/octopress.git (push)
origin
```

となっていた場合、`.git/config`を編集（usernameは適宜変更）

```
[core]
	repositoryformatversion = 0
	filemode = false
	bare = false
	logallrefupdates = true
	symlinks = false
	ignorecase = true
	hideDotFiles = dotGitOnly
[remote "octopress"]
        url = git://github.com/imathis/octopress.git
        fetch = +refs/heads/*:refs/remotes/octopress/*
[branch "source"]
        remote = origin
        merge = refs/heads/master
[remote "origin"]
        url = git@github.com:username/username.github.io.git
        fetch = +refs/heads/*:refs/remotes/origin/*
```

のように修正  
さらに`_deploy/.git/config`を以下のように修正（usernameは適宜変更）

```
[core]
	repositoryformatversion = 0
	filemode = false
	bare = false
	logallrefupdates = true
	symlinks = false
	ignorecase = true
	hideDotFiles = dotGitOnly
[remote "origin"]
    url = git@github.com:username/username.github.io.git
[branch "master"]
    remote = origin
    merge = refs/heads/master
```

修正後にGitHubにdeploy

```
> rake generate
> rake deploy
```

出力に`## GitHub Pages deploy complete`と出れば、お疲れ様でした。  
少し待って`http://username.github.io`にアクセスするとブログができている（はず）です。

## カスタマイズ

* タイトルを変えるには`_config.yml`を編集する。日本語の場合は文字コードはUTF-8で保存する。  
* テーマを変えるには[3rd Party Octopress Themes](https://github.com/imathis/octopress/wiki/3rd-Party-Octopress-Themes)を参照
* プラグインは...[Plugins - Octopress](http://octopress.org/docs/blogging/plugins/)を参照

## まとめ

1. Git shellを起動
2. `> rake new_post['hoge']`で記事作成
3. `source/_posts/YYYY-mm-DD-test-post.markdown`ができるので、Markdown形式で記事を書く
4. `> rake preview`でプレビュー
5. OKなら`> rake deploy`、プレビューが面倒なら`> rake gen_deploy`でGitHubに配置