首页 > 解决方案 > 站点或页面变量的 Jekyll 定义?

问题描述

我是 Jekyll 的新手(实际上我不是前端开发人员)。在很多情况下,当使用 Jekyll 时,我应该使用site.pagesor page.titleect。

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

例如:

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

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

和更多:

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

任何帮助都将不胜感激。

标签: jekylljekyll-theme

解决方案


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

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

前两个粗体可以看作是内容类型原语。Jekyll 使用前面的东西——由一对连续的三个破折号包围的键值对。例如:

---
foo: bar
---

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

如果文件一开始不包含前面的内容,则将其简单地从原样复制sourcedestination 原样而不做任何更改。这样的文件称为静态文件

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

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


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

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


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


推荐阅读