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の完全なリストを示します。
コンテナ | イベント | 読み込み |
---|---|---|
|
|
サイト初期化直後でセットアップやレンダリングの前。サイトの構成の修正によい。 |
|
|
サイトのリセット直後 |
|
|
サイトのデータがディスクに読み書きされた後 |
|
|
サイトのレンダリング直前 |
|
|
サイトレンダリング後、ファイルを書き込む前 |
|
|
サイトをディスクに書き込んだ後 |
|
|
ページが初期化される度 |
|
|
ページがレンダリングされる直前 |
|
|
ページレンダリング後、ディスクへの書き込み前 |
|
|
ページをディスクに書き込んだ後 |
|
|
ポストが初期化される度 |
|
|
ポストのレンダリング直前 |
|
|
ポストレンダリング後、ディスクに書き込む前 |
|
|
ポストをディスクに書き込んだ後 |
|
|
ドキュメントが初期化される度 |
|
|
ドキュメントのレンダリング直前 |
|
|
ドキュメントのレンダリング後、ディスクに書き込む前 |
|
|
ドキュメントをディスクに書き込んだ後 |
|
|
構築前のサイトの出力先のクリーンアップ中 |