标签

使用标签对页面进行分组和组织

你可以使用 tags 变量为一个或多个页面分配标签。标签允许你以有趣的方式对内容进行分组。

例如,在一个博客站点中,你可能想要对不同类别的文章进行分组:

---
title: The history of the static site generators
tags:
  - post # 文章
  - ssg  # 静态站点生成器
---

这篇文章有两个标签,一个用于标识页面类型(post),另一个用于标识主题(ssg)。要在布局中收集所有标记为 post 的页面,请使用 search 对象:

<ul>
  {{ for post of search.pages("post") }}
  <li>{{ post.title }}</li>
  {{ /for }}
</ul>

要获取所有标记为 postssg 的页面,请添加两个标签名称,并用空格分隔:

<ul>
  {{ for post of search.pages("post ssg") }}
  <li>{{ post.title }}</li>
  {{ /for }}
</ul>

_data 中的标签

与其他值不同,当你在 _data.* 文件和页面中定义 tags 时,该值不会被覆盖,而是会被聚合。换句话说:页面将拥有在 _data.* 页面中定义的所有标签。在前面的示例中,与其手动为所有页面分配 "post" 标签,不如在存储所有文章的目录中的 _data.* 文件中定义它,并使用 front matter 来单独分配其他标签。