Middleman-Blog + Amazon S3へ移行

ブログをOctopress + GitHub PagesからMiddleman-Blog + Amazon S3へ移行しました。

Middlemanに興味があって試したところ、シンプルで使い勝手がよかったためそのまま移行することにしました。 AWSも勉強中なので、この機会に併せてホスティングをS3に、DNSサーバーもRoute 53にしました。 コスト意識を持った方が、色々工夫しようとする気持ちが強くなるので、技術が身につきやすいのかなぁと思います。

Goodbye Octopress

Octopressを使うとき、まず本体をGitリポジトリからクローンし、その中に記事のファイルを追加していきます。 そのため、記事用のブランチを切ってはいますが、本体の更新のコミットと同居するのでログがかなり見づらいです。 記事だけ別のリポジトリにすれば幾分マシだったのかも?それもなんだかなぁ。

また、テンプレートには本体の更新の影響を受けないcustomディレクトリが用意されています。 しかし、結局本体に手を入れたくなって変更してしまいます。 その状態で本体を更新するとオートマージが働かないので、毎回更新が面倒でした。

Hello Middleman

記事用のリポジトリがすっきり

一方、Middlemanは本体をRubyGemsからインストールするので、記事や自分のカスタマイズ分だけを管理できます。 その方が自然ですよね。

Middleman-Livereloadが快適

Middleman-Livereloadを入れると、ファイル変更時の自動再ビルドのタイミングでWebブラウザのリロードをやってくれるようになります。 プレビュー時のみWebSocketのスクリプトが埋め込まれ、ブラウザに拡張機能をインストールすることなく使えます。

Middlemanのビルド自体がOctopressよりも早いのでかなり快適です。 特にブログのデザインをしている時に威力を発揮しました。 あと、ほとんどの設定の反映もリロードが効きます。

デザインされたテンプレートがほとんど配布されていない

Octopressはデフォルトでもわりときれいなテンプレートが入っていました。 また、数は多くはありませんでしたが、テンプレートを作って配布しているユーザーもいました。

Middleman-Blogが生成するデフォルトのテンプレートは、スタイルなしで最低限のHTMLで構成された殺風景なものです。 今のところ、ちょっと検索した程度では配布しているサイトは見当たりませんでした。 middleman-zurb-templateというのがあったけどちょっと期待しているのと違うかも。

でもSlim + Sassでデザイン楽しい

MiddlemanはテンプレートエンジンのインターフェースにTiltを使っているので、数多くのエンジンに対応しています。 今回テンプレートエンジンにはSlimを選んで、Gumbyをベースにデザインしています。

記事ごとのパーマリンクの変更は未対応

Octopressは記事ごとにパーマリンクの定義が可能でしたが、Middlemanではできません。 そこでS3のリダイレクト機能ですよ。

WordPressからOctopressに移行したときに、気分が変わってパーマリンクの形式を変えたのですが、元々あった記事は個別設定でパーマリンクを変えないでおきました。 今回の移行では個別設定ができなくなったので、ベースとなるパーマリンクはOctopressと同じになるようにし、個別に変えていたものをリダイレクトするようにしました。

詳細は別記事で

色々と実現するために使った拡張機能など、踏み込んだ話は別記事で書きます。 また、デザインの改善や機能の追加なども、楽しみながらやっていきたいと思います:)