1. Qiita
  2. Items
  3. middleman

middleman-blogをgithubでホストする

  • 1
    Like
  • 0
    Comment

この記事は2013年6月21日にatsuyaによってCoiney Developer Blogに書かれた記事の転載です。

最近は色々魅力的ブログサービス沢山ありますが、自分の書いた記事が手元にファイルとして残るのは嬉しい事です。このブログは、middleman (とmiddleman-blog) を使って作成し、記事を含んだ全てのデータをgithubで管理しています。middlemanは、最終的にhtmlファイルを出力するので、それらのhtmlファイルを公開したい場合は、どこかでホストする必要があります。既にgithubを使ってデータを管理しているので、ここではgithubでmiddlemanで作成したブログをホストする方法を解説します。

github pages

githubには、github pagesという、静的なコンテンツをホスト出来る機能があります。githubのユーザかorganizationに対するサイトか、プロジェクトに対するサイトか、によって設定の方法が少し違います。

ユーザかorganizationに対するサイトの場合

レポジトリの名前は、username/username.github.ioというネーミングスキーマに従う必要があります。そして、masterブランチのコンテンツが使われます。

プロジェクトに対するサイトの場合

レポジトリの名前は、なんでも構いません。ただ、masterブランチではなく、gh-pagesブランチのコンテンツが使われます。

ここでは、coineyというorganizationに対するサイトをホストする事を前提に解説します。つまり、coiney/coiney.github.ioというレポジトリのmasterブランチにブログのコンテンツをpushします。

middleman-deployを使ってデプロイする

middlemanの出力したファイルを特定のブランチにpushする場合、手動でも構わないのですが少し面倒です。そこで、middleman-deployというmiddlemanのextensionを使って、コマンド一つでgithubにpush出来るように設定します。

Gemfileにmiddleman-deployを追加します。

gem 'middleman-deploy'

そしてインストールします。

bundle install

config.rbに以下のコードを追加します。

activate :deploy do |deploy|
  deploy.method = :git
  deploy.branch = 'master'
end

'master'の部分でpushするブランチを指定しています。githubのプロジェクトに対するサイトをホストする場合は、ここは'gh-pages'になります。

最後に、以下のコマンドでgithubにデプロイ出来ます。

bundle exec middleman build
bundle exec middleman deploy

デプロイされたサイトは、http://{githubのusername}.github.ioでアクセス出来るようになります。

github.io以外のドメインを使う

デフォルトでは、github pagesを利用したサイトはgithub.ioドメインでホストされます。もし自分の持っているドメインを使いたい場合は、CNAMEという名前のファイルを作成し、そこに使いたいドメインを記述します。

coiney.github.ioではなくblog.coiney.comを使いたい場合は、CNAMEblog.coiney.comと書きます。

blog.coiney.com

注意したいのは、CNAMEファイルを足すブランチです。github pagesは、ユーザかorganizationに対するサイトの場合はmaster、プロジェクトに対するサイトの場合はgh-pagesのコンテンツを使います。従って、CNAMEファイルは、mastergh-pagesブランチに足す必要があります。

結論

以上で、middlemanで作成したブログがgithubでホスト出来るようになります :) github pagesについてもっと詳しく知りたい場合は、github pagesのヘルプが非常に参考になります。

また、githubではなくs3でホストしたい場合は、qnypさんの記事が参考になります。