|

以前、静的ブログサイト構築ツールに移行したいと書いたが、このたび思い立ってWordpressで運用していた本ブログを、静的ブログサイトツールJekyllに移行した。

JekyllはGitHubで開発された静的ウェブサイト生成ツールで、GitHubが運営するウェブサイトホスティングサービスであるGitHub Pagesの構築によく使われている。 記事はMarkdown形式のファイルとして作成して、jekyllコマンドを実行することで、あらかじめ用意しておいたテンプレートに従ってウェブサイトを構築してくれる。 いまどきの静的ウェブサイト生成ツールにはnanocやmiddlemanなどいろいろあるのだが、 JekyllはWordpressから移行するためのツールが用意されているので採用することにした。

また、ウェブサイト全体の構成のベースとして、Jekyll Bootstrapを使用した。これはJekyllでブログを構築する際のテンプレートの一種である。 タグの一覧やソーシャルメディアボタンを置くための便利メソッドが事前に実装されているため、あまり苦労することなくWordpressで運用していた頃のスタイルを再現することができる。 CSSはTwitter Bootstrapを使用しているので、デザインのカスタマイズもTwitter Bootstrapに触ったことのある人には簡単なはずだ。

自分でもいくつかヘルパーメソッドを独自実装した。 例えば、記事にCreativeCommonsライセンスを付与するためのヘルパーなどである。 このヘルパーは記事ソースファイルの先頭に定義されたYAML Front Matterに「cc: cc-by」「cc: cc-by-sa」などと書くと、対応するCreativeCommonsのメタデータを出力してくれる。 単に自分が使うライセンスのタイプに従って出力するHTMLを切り替えるだけの単純な仕組みであるが、結構便利である。 暇があるときに独自実装のヘルパースクリプトと併せて、このブログサイトのソースコードをGitHubにあげてみようと思う。

苦労した点としては、ウェブサイトを更新する方法である。 Wordpress運用時ではブラウザから記事を更新できるのだが、Jekyllで運用する場合には一旦HTMLコードを生成し、SFTPなどを経由してウェブサーバー上の公開ディレクトリにコピーする必要がある。しかしこれを記事更新の度に行うのはさすがにだるいし、ファイル操作を間違えると他のファイルを書き換えてしまう危険性も生じる。 解決策がないものかと公式サイトを見てみたところ、以下のフローが適当なようだ。

  1. Jekyllで作成したブログのGitリポジトリをサーバー上に作成しておく
  2. Gitリポジトリからソースファイルを一時的にcloneし、HTMLソースを構築して公開ディレクトリにコピーするスクリプトを作成する
  3. 作成したスクリプトをGitのhooksディレクトリ以下に post-receive として保存する

このような設定をした上で、ローカルにcloneしたGitリポジトリ上で記事を作成・コミットし、サーバー側のGitリポジトリに push すると、 後は自動的にウェブサイトの再構築を行ってくれる。 実装途中でパーミッション関係の問題にぶち当たったが、これに関してはsudoerの設定をいじっておく。

ソースコードはMarkdownで書かれているので文章を再利用する際にも便利だし、記事を作成する過程で様々な場所にソースコードが分散して保存されるので、余計なバックアップ作業ををわざわざ行う必要が無いのが嬉しい。セキュリティの観点から言っても、Wordpressの脆弱性を気にする必要が無いので運用上のコストがあまりかからないだろう。

トラックバック

クリエイティブ・コモンズ・ライセンス
kunimiya 作『ブログツールをWordpressからJekyllに移行した』はクリエイティブ・コモンズ 表示 4.0 国際 ライセンスで提供されています。