Hooks(フック)

Hookを使用すると、プラグインはビルドプロセスのさまざまな側面をきめ細かく制御できます。プラグインが何らかのHookを定義している場合、Jekyllはそれらを事前定義された時点で呼び出します。

Hookはコンテナとイベント名に登録されます。登録するには、Jekyll::Hooks.registerを呼び出し、フックがトリガーされるたびに呼び出すコンテナ、イベント名、およびコードを渡します。たとえば、Jekyllが投稿をレンダリングするたびにカスタム機能を実行したい場合は、次のようにフックを登録します。

Jekyll::Hooks.register :posts, :post_render do |post|
  # code to call after Jekyll renders a post
end

Jekyllは:site:pages:postsそして:documentsにHookを提供します。すべての場合において、Jekyllは最初のコールバックパラメータとしてのコンテナオブジェクトを使用してHookを呼び出します。 全ての:pre_render Hookと:site, :post_render Hookもペイロードハッシュを2番目のパラメータとして提供します。:pre_renderの場合、ペイロードはレンダリング中に利用可能な変数を完全に制御します。:site, :post_renderの場合、ペイロードにはすべてのサイトをレンダリングした後の最終値が含まれます(サイトマップ、フィードなどに役立ちます)。

以下に利用可能なHookの完全なリストを示します。

コンテナ イベント 読み込み

:site

:after_init

サイト初期化直後でセットアップやレンダリングの前。サイトの構成の修正によい。

:site

:after_reset

サイトのリセット直後

:site

:post_read

サイトのデータがディスクに読み書きされた後

:site

:pre_render

サイトのレンダリング直前

:site

:post_render

サイトレンダリング後、ファイルを書き込む前

:site

:post_write

サイトをディスクに書き込んだ後

:pages

:post_init

ページが初期化される度

:pages

:pre_render

ページがレンダリングされる直前

:pages

:post_render

ページレンダリング後、ディスクへの書き込み前

:pages

:post_write

ページをディスクに書き込んだ後

:posts

:post_init

ポストが初期化される度

:posts

:pre_render

ポストのレンダリング直前

:posts

:post_render

ポストレンダリング後、ディスクに書き込む前

:posts

:post_write

ポストをディスクに書き込んだ後

:documents

:post_init

ドキュメントが初期化される度

:documents

:pre_render

ドキュメントのレンダリング直前

:documents

:post_render

ドキュメントのレンダリング後、ディスクに書き込む前

:documents

:post_write

ドキュメントをディスクに書き込んだ後