title-logo

Hey there! I've just started a blog

October 30, 2014

こんにちは!ブログをはじめました。
とはいえ、何にもひとつも書くことが思いつかないので、このブログ自体についての記事にします。

このブログは Middleman を使って構築しています。

Middleman

Middleman は Ruby 製の静的サイトジェネレータです。同様のものとして Jekyll や、それをベースとしたブログツールの Octopress がありますが、さっと調べてみて以下のような理由から Middleman を使うことにしました。

  1. 単純に Middleman の方が後発で新しい
  2. 開発も活発にされてるっぽい
  3. ドキュメントがいい感じ。日本語もある
  4. Middleman とブログ拡張の middleman-blog が同一のプロジェクト
  5. エクステンションやヘルパーが書きやすそう

特に 5. については、公開されているエクステンションやテンプレートのコードを見ても、その内容が初めてでもすぐに理解できるものだったので、何か機能が欲しくなったときにもすぐにプラグインで追加できそうだね、って感じでした。
実際に、このブログではいくつかのエクステンションとヘルパーメソッドを作って使っています。

もうひとつ候補で考えていたのは、Python 製のブログツールの Pelican でした。Pelican は以前に使ったことがあって、コードベースも大体読んで実装を掴んでいたのでちょうどよかったのですが、デフォルトの記述言語が reST だったり、テンプレートエンジンに Jinja 以外を使おうとすると結構面倒だったり、色々遠回りになりそうな気がしました。何ていうか、優劣とかじゃなくて、単純に文化が違うというか。結局、記法は Markdown しか使わないし、テンプレートエンジンには Slim が使いたかったので Pelican を使うことはやめました。

ブログテンプレート

Middleman のブログ拡張である middleman-blog には、デフォルトのスタイルが何ひとつ付いていません。用意されている erb にもホントに最小限のブログ機能しかありません。そして、公式のテンプレートページに紹介されているものの中にも、残念ながらそのまま使えそうなものがなかったので、とりあえず自分で作ることにしました。

自作のテンプレートには、以前に Bourbon とかを使って作ってみたやつがありましたが、せっかくなのでスクラッチから書こうかね…と思いました。思いましたが、結局途中でメンドくさくなって CompassBreakpoint を利用しました。また、最初は一応 Golden Ratio をちゃんと考えたり、partial と mixin を使った構造化を心がけたりしてたんですが、これもやっぱり途中で面倒になって適当にやりました…

変数名とかもハンパなく適当にやってしまって参ってます。例えば色の設定なんかこんな感じで、$vim-gray とか $beam-gray とか言われても、自分でもサッパリどんな色なのか見当すらつきません。マジで Emacs の rainbow-mode 頼りです。

$blind-gray: #272727;
$hardcore-gray: #3b3b3b;
$vim-gray: #4a4a4a;
$gentle-gray: #666;
$beam-gray: #969696;
$feather-gray: #b4b3b3;
$whity-gray: #ccc;
$whity-light-gray: #ddd;
$crammy-green: #28a1a1;

今は思いっきり自分専用に作ってますが、それなりに時間はかけたので、いつか整理して汎用的に使いまわせるように構成できたらこのテンプレートも公開したいですね。