Jekyllを使いホームページをリニューアルしました。

2014年5月にリニューアルした、弊社 株式会社テクノブレーン のホームページと、このブログサイトにはJekyllというWebページ生成ツールを使用しています。
今回はJekyll採用の理由を少しばかりご紹介させていただきます。

Jekyllとは

JekyllはWebページを生成してくれるツールです。

CMS(コンテンツマネジメントシステム)もWebページを生成しますが、データベースやファイル(コンテンツ)の情報からリアルタイムでWebページを生成します。通常はWebシステムとして構築されていて、この機能を提供します。ブログ用のCMSとしてはWordPressやMovable Typeなどが有名ですが、最近はこれら以外にもたくさんありそうです。

これに対し、Jekyllは静的ページを生成するツールですので、データベースやファイルなどのコンテンツを更新後、すぐにWebページに反映されるようなものではありません。
コンテンツを更新するには、HTMLファイルや、Markdown形式で記載されたテキストを更新し、JekyllでHTMLファイルを生成する工程が必要となります。HTMLが生成されたら一般的なWebサイトの更新と同様にファイルをWebサーバにFTPなどで転送する作業も必要になります。

あまり楽そうではありませんね。では、なぜわざわざJekyllを利用するのでしょうか?
それは、ベースとなる技術に弊社が推しているRubyを採用しているから。
ということも採用の1つですが、Jekyllのような静的Webページの生成ツールには下記の利点があると思います。

  • セキュリティ(対 CMS)
    攻撃者に対するセキュリティもあると思いますが、DB故障などのリスクもなく、たとえばソースをGitHubで管理すれば安心です。
  • システム運用コスト(対 CMS)
    アプリケーションサーバ、DBサーバが不要で、Webサーバのみで運用できます。
  • テンプレートの活用(対 HTML)
    ヘッダ、フッタはもちろん、レイアウトテンプレートを用意すれば、ページの一部を再利用できます。
  • コンテンツのデータ化(対 HTML)
    新着情報のように頻繁に更新する情報をyaml形式のデータで記述し、スクリプト言語の様に繰り返し処理や分岐処理を利用してコンテンツを生成することができます。

その他にもいろいろとあるかと思いますが、実は弊社で(私が)Jekyllを採用した理由は、やはりRubyをベースの技術として採用している点、GitHubなどでも採用されるなどの実績がある点、今あなたにご覧いただいているブログサイトまで作成できてしまう機能まであるからです。日本語の情報が少ないので、導入時の立ち上げはJekyllを理解するのに少々苦戦するかもしれません。

最近は弊社内でもRubyの技術者も増え、Rubyアソシエーションで実施している認定試験のGold保持者が4名、Silver保持者が12名となりました。よって、弊社のエンジニアの1/4がJekyllを使いこなしてくれる可能性があるわけです。Rubyの知識がなくても、運用手順などを整備すれば活用できるかもしれませんが、やはりRubyの知識はあった方が良いと思います。

##Jekyllのおススメの設定をちょっと紹介

_config.ymlの一部抜粋です。

markdown: redcarpet
highlighter: pygments
source: ./_source
destination: ./_site
keepfile: ['.git']

デフォルトでは source: . となっているのですが、上記の通り ./_source に変更しています。
個人の好みもあると思いますが、プロジェクト直下にhtmlファイルが増えてしまうので、私はこちらのほうをお勧めしたいと思います。