渲染流程

对于任何 Jekyll 网站,构建会话由以下顺序的离散阶段组成 — 设置插件、读取源文件、运行生成器、渲染模板,最后将文件写入磁盘

虽然上述阶段不言自明,但需要剖析的一个阶段是渲染阶段

渲染阶段还可以细分为三个可选阶段。每个渲染的文件都会根据文件的内容字符串、前端信息和扩展名通过其中一个或多个阶段。这些阶段类似于装配线,其中一个阶段的输出是后续阶段的输入

  • 解释文件中的 Liquid 表达式
    此阶段评估当前文件中的 Liquid 表达式。默认情况下,解释是浅层的 — 即结果输出中的任何 Liquid 表达式都不会进一步解释。此外,文件前端信息中的任何 Liquid 表达式都不会被修改。
  • 释放转换器
    此阶段调用映射到当前文件扩展名的转换器,并转换输入字符串。此时 Markdown 会转换为 HTML,Sass / Scss 会转换为 CSS,CoffeeScript 会转换为 JavaScript,依此类推。由于此阶段由文件扩展名决定,因此 .html 文件中的 Markdown 或 Sass 将保持不变。
  • 填充布局
    在此阶段,源文件被视为已呈现,并且不会被重新访问。但是,基于文件的扩展名,进而基于前置内容,决定是否将前一阶段的输出字符串放入布局中。Sass 文件或 CoffeeScript 文件的输出从不放入布局中,而常规文本输出可以根据是否通过前置内容分配了布局而以两种方式进行。

    放入布局的工作方式类似于俄罗斯套娃将较小的套娃套在自身内部的方式,或者牡蛎生成珍珠的方式——前一阶段转换的输出形成核心,布局在核心上依次呈现