jekyllrb.com / CC-BY 4.0

今まで、このブログはWordPressで運用しておりましたが、いろいろ思うところがあって、今回、Jekyllへ移行しました。

その結果、WordPressのコメントシステムが使えなくなりました。今までコメントを書きこんでくださった皆様、誠に申し訳ございません。

新たにdisqusというWebサービスを導入しておりますので、よろしければ、そちらをご利用ください。

今回は、なぜ、Jekyllへ移行したのかについて書いておきます。

Jekyllの特徴は、WordPressのようなWebサーバー上で動作するソフトウェアではなく、手元のPCで実行してHTMLを生成するソフトだということです。生成されたHTMLは自分でサーバーへアップロードするなり、好きなように運用するだけなので、昔ながらのHTMLオンリーな世界に近いです。

Jekyllによるサイト構築のお手軽さ

Jekyllを使ったサイト構築は、とにかく手軽です。

手元のPCで、Jekyll自身をWebサーバーとして動かしながら、HTMLやCSSのサイトのソースを編集すれば、すぐにブラウザで確認できます。プラグインで機能を追加する場合も、Rubyでコードを書いて特定のフォルダに置いて、Jekyllを再起動すれば、すぐに動作確認できるため、テンポよく開発を進めることができます。開発言語がRubyなところも心地よいです。

当然、MySQLなどのデータベースや、PHPのようなサーバーで動くプログラムは必要ありません。WordPressのようにセキュリティアップデートの作業も必要ありません。サーバーへの負荷も低くなります。

その分、できることは限られますが、当ブログのように静的なコンテンツが中心なサイトだと問題ないはずです。外部のWebサービスと連動させたり、jQueryなどを活用すれば、それなりにいろんなことができるのではないか思っています。

ちなみに、WordPressでも、一度アクセスされたページはHTMLファイルをキャッシュとして再利用するプラグイン(W3 Total Cache)を使っていたので、サイトの訪問者から見れば、結局、同じようなふるまいだったりします。WordPressが勝手にHTMLファイル化してくれるのに対して、Jekyllは管理者が手動でHTMLファイルをアップロードするかの違いだけで。

当然、WordPressのほうが高度なことをしているので、単純に同じとは言えませんが、当ブログ的には、Jekyll移行で得られるメリットのほうに魅力を感じました。

Emacsのorg-modeとの連携

Jekyllでは、Markdown形式かHTMLで記事を書くことが標準です。一方、私は今まで、Emacsのorg-modeで記事を書き、org2blogパッケージを使ってWordPressへ記事を直接ポストしてきました。できることなら、org-modeをそのまま使いたい。

というわけで調べてみると、Jekyllとorg-modeを連携させるためには、次の2パターンが考えられます。

  • Jekyllにorg-mode用プラグインを追加し、org-mode形式をJekyll自身に認識させる
  • EmacsからJekyllへ、HTML形式としてExportする

手軽さでは、プラグインのほうがいいのですが、残念ながら、org-modeの機能をすべてサポートしているわけではありません。一方、Exportする方法は、Orgをフルに活用できるものの、手間が増えます。

試行錯誤の末、HTML形式としてExportする方式でいくことにしました。使い勝手をよくするために、それなりに作業が必要でしたが、今までのorg-modeの環境を捨てることなく、移行できたので満足です。

Jekyllの問題点

Jekyllの問題としてよく目にするのは、記事が多くなるほど、HTMLの出力に時間がかかるといわれることです。記事が160本程度の当ブログでも、記事を修正して、ブラウザで確認しょうとすると、約16秒待たされます。

しかし、出力する記事の数を制限するオプションを使って、例えば、最新の記事3本だけにすると、約2秒まで縮めることができますので、運用でなんとかなるでしょう。

もし今後、問題があったとしても、とにかくシンプルで拡張性が高いので、工夫さえすれば、どうにでもなると思わせてくれるところもJekyllの魅力かもしれません。というか結局、HTML出力するだけの話なので・・・。

まとめ

というわけで移行した理由としては、

  • Jekyllでサイト構築が手軽で魅力的
  • サーバーの管理が楽
  • Emacs org-modeで記事を書けること

といったところでした。

WordPressのように便利なプラグインが充実しているわけではないので、自力で対応しないといけなことも多いです。そのため、万人におすすめできるようなものではありませんが、それでもJekyllの手軽さとRubyの心地良さゆえにとても楽しい世界です。

また気付いたことなどあれば、記事にしていきたいと思います。