Jekyll を使ってこのブログを建ててみました。
ローカルの PC で静的なサイトをブログっぽく生成する Ruby で書かれたツールで、公開するには生成されたファイル群をアップロードするだけ。これまで触っているところでは結構気に入っています。

セットアップ 〜 テスト投稿

まずは gem コマンドでインストール。

gem install jekyll

そして以下の記事に沿って、設定準備やレイアウトと呼ばれるテンプレートの作成とテスト投稿までを試してみました。

Big Sky :: Jekyllで始める簡単ブログ
http://mattn.kaoriya.net/software/lang/ruby/20090409185248.htm

レイアウトファイルを作っていく

挙動がなんとなくわかったら、自分好みのレイアウトファイルを作っていきます。
よく使う要素があるようなら、_include ディレクトリを作成してその中にファイルを置いておけばレイアウトファイル内でこのように呼び出せます。

{% include global-header.html %}

これを含め、様々な使い方・設定が Github の Jekyll プロジェクトページに載っているので、大体ここを見て作り進めていました。 Configuration や Template Data のページはとりわけよく見ていたと思います。そのほか、記事一覧のページ送りについては Pagination の作例も参考にしました。

Pages · mojombo/jekyll Wiki
https://github.com/mojombo/jekyll/wiki/_pages

関連ポストの表示

関連ポストの表示も出来るそうなので、記事の個別ページの一番下へ表示するようにしてみました。関連ポストを集計をするためには --lsi オプションをつけて jekyll コマンドを実行します。_config.yml に lsi: true と記述してもよし。

この処理には少し時間がかかります。 Classfier という gem が使われているそうなのですが、gsl という gem も入れると相当に早くなります。以下の記事を参考に homebrew で gsl をインストールして gem の gsl もインストールしました。

Jekyllで関連ポストを表示する | tech.portalshit.net
http://tech.portalshit.net/2011/04/17/related-post-in-jekyll/

自分の場合はどうも gem gsl のインストールで失敗するようで、調べているとこちらのフォーラム記事 RubyForge: Ruby/GSL: が引っかかり、そこで見つけたパッチ Fix for "matrix_complex.c:1525: error: conflicting types for ‘gsl_matrix_complex_equal’" — Gist を、ここから RubyForge: Ruby/GSL: ファイルリスト 直接ダウンロードしたファイルに当ててようやくインストールに成功しました。

レイアウトファイルにはこのように記述して関連ポストを呼び出しています。

<ul>
{% for post in site.related_posts limit:5 %}
<li>
{{ post.date | date_to_string }}
-
<a href="{{ post.url }}">{{ post.title }}</a>
</li>
{% endfor %}
</ul>

そのほか

Markdown を使って書いたテキストがそのまま記事になるのですごく楽であることとか、レイアウトファイルも記事も全部まとめてバージョン管理出来ることなどが気に入っています。

これまで Wordpress だったのですが、前者は以前なら手元で HTML に変換した Markdown のテキストを投稿画面の入力欄にコピペとかしていましたし、後者についても、ブログテーマとブログの設定がお互い依存している部分もあるのにテーマファイル と DB とに分かれてしまっているなど個人的に気になっていたことが解消されて良い感じです。