Jekyll 静态文件 Static Files

静态文件指的是那些不包含页面头部参数(Front matter)的文件。比如图片、PDF 和其他不需要渲染的内容。

在 Liquid 中可以通过 site.static_files 访问这些静态文件,包含以下元数据:

变量 Variable 说明 Description

file.path

文件的相对路径,例如:/assets/img/image.jpg

file.modified_time

文件的最后修改时间,例如:2016-04-01 16:35:26 +0200

file.name

文件的名称字符串,例如:image.jpg for image.jpg

file.basename

文件的基本名称字符串,例如: image for image.jpg

file.extname

文件的扩展名,例如: .jpg for image.jpg

需注意,上表中的 file 可以是任何文件。可以在你自己的 for 循环逻辑(for loop)中使用,它并非全局的站点变量或页面变量。

给静态文件添加页面头部参数(Front matter)

虽然不能直接向静态文件添加页面头部参数值(Front matter values),但可通过配置文件中的 defaults 属性 设置页面头部参数值(Front matter values)。当 Jekyll 构建站点时,它将使用你设置的页面头部参数值(Front matter values)。

以下是一个示例:

_config.yml 文件中,向 defaults 属性添加以下值(配置片段):

defaults:
  - scope:
      path: "assets/img/"
    values:
      image: true

建议path值中的路径,最终文件夹以/结尾,否则会匹配同名路径内容。比如path: "assets/img/"会包含 img 文件夹和 img2 文件夹中的内容。

假设你的 Jekyll 站点中有一个这样的路径 assets/imgimg 里面存放图片(静态文件)。当 Jekyll 构建站点时,它会把每个图片都视作具有 image: true 的页面头部参数值(Front matter values)。

如果你想要列出 assets/img 文件夹中所有的图片资源。你可以使用以下的 for 循环来查找 static_files 对象,并获取具有这个页面头部参数(Front matter)的静态文件:

{% assign image_files = site.static_files | where: "image", true %}
{% for myimage in image_files %}
  {{ myimage.path }}
{% endfor %}

当构建 Jekyll 站点时,将输出满足这个页面头部参数条件的全部文件的路径。