Jekyll中的集合介绍
Jekyll 中的集合提供了一种简单的方法来围绕相同类型的内容创建自己的分类法。 这对于属于一个组的作品非常有用,但那不是真正的帖子,不应该按时间顺序组织。 集合的一个很好的用例是作者页面,因为它们是在本网站上为 内容协作者 实现的。
让我们设置一个简单的 animals 集合,其中包含与我们最喜欢的动物相关的内容。
集合配置
首先,在 _config.yml 文件中设置集合:
_config.yml
collections: animals: output: true
将 output 选项设置为 true 将为我们集合中的每个文档生成一个页面。
然后,在 Jekyll 站点的根文件夹中,您将创建一个 _animals 文件夹,并为我们集合中的每一种动物填充降价文件:
_animals/ zebra.md lion.md alligator.md ...
有了这个,我们的动物将可以通过转到例如 /animals/zebra 来访问。 如果需要,您还可以定义不同的永久链接结构……
_config.yml
collections: animals: output: true permalink: /my-animal/:name
…这将使我们的动物页面可以在 /my-animal/zebra 等 URL 上访问。
您可以定义动物属性的默认值。 如果集合中的所有文档将共享相同的布局,这将很有用,例如:
_config.yml
collections: animals: output: true permalink: /my-animal/:name defaults:
对 _config.yml 进行更改后,不要忘记重新启动本地服务器。
收集文件
以下是我们收藏的一个 mardown 文件中的内容示例:
_动物/斑马.md
--- layout: animal # You can ommit this if you've set it as a default title: Zebra class: Mammalia family: Equidae headline: Zebras are the best! picture: /images/animails/zebra.jpg ---
我们的每一个动物都将包含以下属性的值:title、class、family、……,以及一些将使用 输出的降价内容]模板:内容 在 animal 布局中。
布局
这是一个简单布局的示例:
_layouts/animal.html
--- layout: default --- <article class="animal"> <img src="{{ page.picture }}" alt="Photo of a {{ page.title | downcase }}"> <h1>Animal Profile: {{ page.title }}</h1> <div class="animal-class {{ page.class | downcase }}"> {{ page.class }} </div> <div class="animal-family {{ page.family | downcase }}"> {{ page.family }} </div> <div> {{ content }} </div> </article>
这里我们的 animal 布局依赖于 default 布局。
列出收集文件
假设您有一个页面,您想在其中列出并链接到集合中的每种动物。 通过 site 变量访问我们的集合很容易做到这一点。 另请注意 url 属性如何自动可用并允许轻松链接到文档:
页面/animals.md
--- layout: page title: "A list of animals" permalink: "/animals/" ---
除了 url 之外,每个文档都会自动提供更多属性:content、output、path、relative_path 、 集合 和 日期。
作者用例
在这个网站的例子中,我们在布局中检索一个帖子的作者,如下所示:
<span class="author"> <a href="{{ author.url }}">{{ author.title }}</a> </span>
带有作者的帖子定义了一个 author 属性,其值与作者集合的每个文档中的 slug 属性相关。 由于液体模板语言的强大功能,我们可以检索每个帖子的正确作者。
🦄 为您的静态 Jekyll 网站创建收藏,玩得开心! 更多细节可以参考【X39X】官方文档【X65X】。