今日の朝に書いたGitHub+Jekyllの記事が意外と好評のようで、ご質問をいただきました。
その回答を兼ねて、書いてみようと思います。
GitHub+Jekyllで何が出来るのか?
基本的には今朝の記事(上記)に書いたとおりなのですが、技術的な側面に寄っていたと思うので、実用面でまとめてみましょう。
Jekyll単体の場合
Jekyllは公式サイトでは、”transform your text into a monster”と書いてあって、「テキストファイルを変換するもの」なんですね。
だから、Liquidで書いたテンプレートに対して、テキストファイルの中身を埋め込んでくれるだけです。で、そのテンプレートがHTMLであればWebページが吐き出されるし、XMLならRSSフィードのようなものを吐き出すことも出来ます。
ただ、もう少し面白い機能があって、
_posts というディレクトリに、2013-04-10-new-post.md というMarkdownで書いたテキストファイルを作ると、Jekyllは http://foo.bar.com/2013/04/10/new-post.html というURLでアクセス出来るWebページを生成してくれます。(ちなみに、作るファイルはMarkdownでなくても構いませんし、Markdownの中にHTMLを混在させることも出来ます。)
また、テキストファイルの冒頭に、
---
layout: post
category: news
title: 新しい投稿
---
というふうに書くと、URLは、http://foo.bar.com/news/2013/04/10/new-post.html になります。(設定次第ですが、デフォルトでは。)
この冒頭の記述をYAML Front-Matterというのですが、この項目は好き勝手に増やすことができます。この辺がJekyllの面白いところで、うまく使うとWordPressのカスタム投稿タイプのようなことが出来るのです。(カスタム投稿タイプはWordPressをCMS的に使う際に肝となる機能のひとつです。)
相変わらず、説明が技術の側に寄っているような気がしますが、Jekyllというのは非常に単純なツールなので、どうしても、こういう説明になってしまいますね・・・。
私が参考にさせていただいた記事は下記のようなものがあります。
- 30分のチュートリアルでJekyllを理解する
- WordPressよりjekyllで本格的ブログを作りたくなる、かもしれないまとめ | ゆっくりと…
- ruby と jekyll と jekyll-bootstrap で静的サイトを作る – KRAKENBEAL RECORDS
Jekyll BootstrapやOctopressを使うと
結局のところ、Jekyllの機能は非常に単純で、その分だけ柔軟、自由に、使うことが出来ます。これは「いろいろやれる人」にとっては、とても便利なもので、ゆえにITエンジニアに好評なのでしょう。基本的に、エンジニアは単純で柔軟に使えるものを好みます。
しかし、単純で柔軟というのは逆から言えば、それだけでは何もしてくれなくて、やたら手がかかるのです。
ここで、Jekyll BootstrapやOctopressが登場します。どちらを使っても、導入するだけでブログをすぐに始められます。「ブログを作る」のなら、良い選択です。(ただ、投稿画面のような管理画面はありません。あくまで、テキストファイルに書いていきます。)
作りたいものが「ふつうのサイト」なら、Jekyll単体の方が良さそうに思います。Artisan Edgeのサイトを作るためにJekyll BootstrapやOctopressを使わなかったのは、そのためです。
(WordPressやMovableTypeで、ふつうのサイトを作ることが一般化しています。Artisan EdgeのサイトももともとはWordPressでした。たしかに、CMSっぽく使うことは出来るのですが、やはり出自がブログシステムであるだけに、ブログの残り香がかなり強いように思います。)
JekyllとWordPressの違いは何か?
さきほど紹介した、WordPressよりjekyllで本格的ブログを作りたくなる、かもしれないまとめ | ゆっくりと…で、「WordPress と jekyll を比べること自体はナンセンス」と言われていて、確かにそのとおりだとは思うのですが、用途の面でもう少し考えてみようかと思います。
(これは僕じゃない・・・)
おそらく、Jekyllはビジネスにならない
10分くらい考えてみたのですが(短かっ!)、これに尽きるような気がします。
やはり、基本的にはJekyllはエンジニアの玩具で、エンジニアが自分のために使うのが適しているのではないかと思うのです。つまり、Excelとか(!)、vi(emacsやSublime Textでも可)とか、TeXとかの延長線上にあるツールではないかと。
エンジニアも自分のためにWebを作る必要は大いにあって、ブログ然り、Web上のマニュアル然り、自作WebサービスのPRサイト然り。だから、エンジニアにとってのJekyllの用途は多いのです。
でも、WordPressやMovableTypeで、お客様から依頼されたサイトを作っているようなエンジニア、デザイナーが、それの代わりにJekyllを使うようになるかというと、それは違うでしょう。
もし、Jekyllでそういう案件をこなしたとすると、イコール、お客様には新しい記事をテキストファイルで作り、それをGitにコミットしてGitHubにプッシュするとか、シェルでjekyllコマンドを叩いてページを生成させ、それをサーバにアップロードするといった作業を強いることになります。それって、現実的でしょうか?(もし、それを好むお客様がいたとすれば、そのお客様は自分自身でJekyllを導入するでしょう!)
ただ、GitHubがPagesでJekyllを使っているように、Webサービスなどのプロダクトに組み込む形でJekyllを使うのはアリかもしれません。
そういう使い道であれば、テキストファイルを書く代わりにWeb画面から投稿できるような仕組みを作ることも出来るでしょう。JekyllはRubyで出来ているので、もともとのプロダクトがRubyで出来ているのであれば、相性の良さもあるでしょう。
まとめ
ということで、元々いただいていた質問に対する回答には、あまりなっていないような気がしています。
ただ、その理由は、私の文才ではなく(それもあるでしょうが)、Jekyllというツールの性格によるものではないかと思うのですが、いかがでしょうか。