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

pup*_*lpg 2 jekyll jekyll-theme

在很多情况下,当使用 Jekyll 时,应该使用site.pages还是page.title等等?

官方文档中,这些变量都有含义。然而读完之后我还是一头雾水。

例如:

  • site.pages:所有页面的列表;
  • page.title:页面标题;

我仍然想知道“所有页面”的含义是什么:我的项目根目录中的所有页面?或者我的项目的任何深度的所有页面?另外页面的定义是什么?

代码中的定义位置是什么site.pages

site:站点范围信息+配置设置_config.yml

“站点范围信息”或这些“站点范围信息”的定义位置之间有什么区别?

ash*_*oli 5

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

  • 页数
  • 静态文件
  • 文件
  • 收藏
  • 数据文件

前两个粗体可以视为内容类型原语。Jekyll 使用Front Matter——由一对三个连续破折号括起来的键值对。例如:

---
foo: bar
---
Run Code Online (Sandbox Code Playgroud)

— 确定给定的内容文件是否需要由 Jekyll处理。

如果文件一开始不包含前面的内容,则只需按原样复制到sourcedestination 而不进行任何更改。这样的文件称为静态文件

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

集合是包含在特殊目录中的一组文件。目录名称以下划线开头,必须在配置文件中显式列出(不带前导下划线),才能将其视为集合目录。以 Front Matter 开头的文件(在集合内)被视为Documents。那些没有前面内容的文件只是静态文件


简而言之,site.pages包括所有在开头包含前言但本身不属于任何集合的文件。about.md你的项目目录的根目录有这样的吗?它是一个Page

集合内的文档可以通过集合来访问。因此,如果您的站点有一个标记为 Collection 的目录movies和几个文件,那么可以通过以下_movies方式访问它们site.movies


posts是预定义的集合并以特殊状态处理。个别帖子不需要包含前言,它们仍然可以通过site.posts