站点或页面变量的 Jekyll 定义?

Jekyll definition for site or page variables?

我是 Jekyll 的新手(事实上我不是 front-end 开发人员)。在许多情况下,当使用 Jekyll 时,我应该使用 site.pagespage.title 等。

official doc中,这些变量是有含义的。但是,看完还是一头雾水

例如:

我仍然想知道“所有页面”是什么意思:我项目根目录下的所有页面?还是我项目任何深度的所有页面?另外页面的定义是什么?

我认为文档对我来说不够清楚。有人知道更具体的细节,例如 site.pages 在代码中的定义位置吗?如果我知道定义在哪里,也许我可以得到更多。

还有更多:

关于所有“站点范围信息”或这些“站点范围信息”的定义位置的更多信息?

感谢任何帮助。

在基础层面,Jekyll中有5种数据类型

  • 页数
  • 静态文件
  • 文档
  • Collections
  • 数据文件

前两个粗体可以看作是content-type原语。 Jekyll 使用 front matter — key-value 对,由一对连续的三个破折号括起来。例如:

---
foo: bar
---

— 确定给定的 content-file 是否需要由 Jekyll 处理

如果文件一开始不包含前文,它只是从source复制到destination原样 没有任何变化。这样的文件称为 静态文件.

否则,文件的内容将被发送进行处理,最终生成 HTML 文件。此类文件是 PagesDocuments。这两者之间的区别在于文件是否是 Collection 的一部分。

A Collection 是一组包含在特殊目录中的文件。目录名称以下划线开头,并且必须在配置文件中明确列出(没有前导下划线)才能将其视为 Collection 目录。 文件(在 collection 中)内容以 front matter 开头的文件被视为 Documents。那些没有封面的只是静态文件.


简单地说,site.pages 包含所有那些在开头包含前言但本身不属于任何 collection 的文件。在你的项目目录的根目录下有这样一个 about.md 吗?这是一个.

collection 中的文档通过 collection 访问。因此,如果您的站点有 a Collection 标记为 movies 并且在目录 _movies 中有几个文件 , 然后可以通过 site.movies

访问它们

posts 是 pre-defined collection 并以特殊状态处理。个别帖子不需要包含前言,它们仍然可以通过 site.posts

访问