レンダリングプロセス

任意の Jekyll サイトで、ビルドセッションは次の順番の個別のフェーズで構成されます。プラグインの設定、ソースファイルの読み取り、ジェネレーターの実行、テンプレートのレンダリング、そして最後にファイルのディスクへの書き込みです。

上記フェーズは自己完結していますが、解剖が必要な 1 つのフェーズはレンダリングフェーズです。

レンダリングフェーズはさらに 3 つのオプションのステージに分割できます。レンダリングされた各ファイルは、ファイルのコンテンツ文字列、フロントマター、および拡張子によって決定されるこれらのステージの 1 つ以上を通過します。各ステージは、あるステージの出力が次のステージの入力となる組立ラインに似ています。

  • ファイル内の Liquid 式の解釈
    このステージは、現在のファイル内の Liquid 式を評価します。デフォルトでは、解釈は浅く、つまり結果の出力内の Liquid 式はさらに解釈されません。さらに、ファイルのフロントマター内の Liquid 式には手を加えません。
  • コンバーターの解放
    このステージは、現在のファイルの拡張子にマップされたコンバーターを呼び出し、入力文字列を変換します。このとき、Markdown が HTML に変換され、Sass/Scss が CSS に、CoffeeScript が JavaScript に変換されます。このステージはファイルの拡張子によって決定されるため、.htmlファイル内の Markdown や Sass は変更されません。
  • レイアウトへの入力
    このステージでは、ソースファイルはレンダリングされたものとみなされ、再検討されません。ただし、ファイルの拡張子とフロントマターに基づいて、前のステージから出力文字列を取得してレイアウトに入れるかどうかが決定されます。Sass ファイルや CoffeeScript ファイルからの出力は決してレイアウトには配置されませんが、通常のテキスト出力はフロントマターを介してレイアウトが割り当てられているかどうかによってどちらの側にも行くことができます。

    レイアウトへの配置は、ロシアの人形がより小さな人形を内側に包む方法や、牡蠣が真珠を生成する方法に似ています。前のステージからの変換された出力がコアを形成し、レイアウトはコアにそれぞれレンダリングされます。