变量

Jekyll 遍历你的网站,寻找需要处理的文件。任何带有 前端信息 的文件都需要处理。对于这些文件中的每一个,Jekyll 通过 Liquid 提供各种数据。以下是可用数据的参考。

全局变量

变量 描述

site

网站范围的信息 + _config.yml 中的配置设置。有关详细信息,请参见下方。

page

特定于页面的信息 + 前端信息。通过前端信息设置的自定义变量将在此处可用。有关详细信息,请参见下方。

layout

特定于布局的信息 + 前端信息。通过布局中的前端信息设置的自定义变量将在此处可用。

theme

主题 gem 特定的信息,如在主题的 gemspec 中定义的。例如,可用于在主题演示的“关于”页面中呈现信息。有关详细信息,请参见下方。

content

在布局文件中,正在包装的文章或页面的呈现内容。未在文章或页面文件中定义。

paginator

当设置 paginate 配置选项时,此变量可供使用。有关详细信息,请参见 分页

网站变量

变量 描述

site.time

当前时间(当你运行 jekyll 命令时)。

site.pages

所有页面的列表。

site.posts

所有文章的反向时间顺序列表。

site.related_posts

如果正在处理的页面是文章,则此内容包含最多十篇文章的列表。默认情况下,这些是最新的十篇文章。对于高质量但计算结果较慢的情况,请使用 --lsi潜在语义索引)选项运行 jekyll 命令。另请注意,GitHub Pages 在生成网站时不支持 lsi 选项。

site.static_files

所有 静态文件 的列表(即未经 Jekyll 转换器或 Liquid 渲染器处理的文件)。每个文件有五个属性:pathmodified_timenamebasenameextname

site.html_pages

site.pages 的一个子集,列出以 .html 结尾的页面。

site.html_files

site.static_files 的一个子集,列出以 .html 结尾的文件。

site.collections

所有集合(包括文章)的列表。

site.data

一个列表,包含从位于 _data 目录中的 YAML 文件加载的数据。

site.documents

每个集合中所有文档的列表。

site.categories.CATEGORY

类别 CATEGORY 中所有文章的列表。

site.tags.TAG

所有带有标签 TAG 的文章的列表。

site.url

包含在 _config.yml 中配置的网站网址。例如,如果在配置文件中设置了 url: http://mysite.com,则可以在 Liquid 中通过 site.url 访问该网址。对于开发环境,有一个 例外,如果你在开发环境中运行 jekyll servesite.url 将被设置为 hostport 和 SSL 相关选项的值。这默认为 url: https://127.0.0.1:4000

site.[CONFIGURATION_DATA]

通过命令行和 _config.yml 设置的所有变量都可通过 site 变量获取。例如,如果在配置文件中有 foo: bar,那么它将可以在 Liquid 中作为 site.foo 访问。Jekyll 不会在 watch 模式下解析对 _config.yml 的更改,您必须重新启动 Jekyll 才能看到变量的更改。

页面变量

变量 描述

page.content

页面的内容,已渲染或未渲染,具体取决于正在处理的 Liquid 和 page

page.title

页面的标题。

page.excerpt

文档的未渲染摘要。

page.url

不带域名的帖子的 URL,但带有前导斜杠,例如 /2008/12/14/my-post.html

page.date

分配给帖子的日期。这可以通过在帖子的页眉数据中指定 YYYY-MM-DD HH:MM:SS 格式(假设为 UTC)或 YYYY-MM-DD HH:MM:SS +/-TTTT(使用相对于 UTC 的偏移量指定时区,例如 2008-12-14 10:30:00 +0900)的新日期/时间来覆盖。

page.id

集合或帖子中某个文档的唯一标识符(在 RSS 源中很有用)。例如 /2008/12/14/my-post/my-collection/my-document

page.categories

此帖子所属的类别列表。类别来自 _posts 目录上方的目录结构。例如,在 /work/code/_posts/2008-12-24-closures.md 中的帖子将把此字段设置为 ['work', 'code']。这些也可以在 页眉数据 中指定。

page.collection

此文档所属集合的标签。例如,对于帖子为 posts,对于路径 _puppies/rover.md 中的文档为 puppies。如果不属于任何集合,则返回一个空字符串。

page.tags

此帖子所属的标签列表。这些可以在 页眉数据 中指定。

page.dir

源目录和帖子或页面文件之间的路径,例如 /pages/。这可以通过 页眉数据 中的 permalink 覆盖。

page.name

文章或页面的文件名,例如 about.md

page.path

原始文章或页面的路径。示例用法:链接回 GitHub 上的页面或文章源。这可以在 页眉 中覆盖。

page.next

相对于当前文章在 site.posts 中位置的下一篇文章。对于最后一个条目返回 nil

page.previous

相对于当前文章在 site.posts 中位置的前一篇文章。对于第一个条目返回 nil

ProTip™:使用自定义页眉

指定的任何自定义页眉都可以在 page 下找到。例如,如果在页面的页眉中指定 custom_css: true,则该值将作为 page.custom_css 提供。

如果在布局中指定页眉,则通过 layout 访问该页眉。例如,如果在布局的页眉中指定 class: full_page,则该值将作为 layout.class 在布局及其父布局中提供。

主题变量4.3.0

变量 描述

theme.root

主题 gem 的绝对路径。

theme.authors

主题 gem 作者组成的逗号分隔字符串。

theme.description

主题 gemspec 中指定的主题 gem 的描述或摘要。

theme.version

当前主题的版本字符串。

theme.dependencies

主题的运行时依赖项列表。

theme.metadata

主题 gemspec 中定义的键值对映射。

分页器

变量 描述

paginator.page

当前页的编号

paginator.per_page

每页的文章数

paginator.posts

当前页可用的文章

paginator.total_posts

文章总数

paginator.total_pages

总页数

paginator.previous_page

上一页的编号,如果不存在上一页,则为 nil

paginator.previous_page_path

上一页的路径,如果不存在上一页,则为 nil

paginator.next_page

下一页的编号,如果不存在下一页,则为 nil

paginator.next_page_path

下一页的路径,如果不存在下一页,则为 nil

分页器变量可用性

这些变量仅在索引文件中可用,但它们可以位于子目录中,例如 /blog/index.html