如何创建和显示自定义 Jekyll 元数据

How to create and display custom Jekyll meta data

我有一个使用精彩 minimal-mistakes 主题的 Jekyll 私人博客(即实验室笔记本)。我的每个博客 post 都大量使用标签,并且可以看到标签列表。

我也喜欢跟踪我在我的博客 post 中提到的人,所以我为每个 post 添加额外的元数据,如下所示:

---
title: "My great experiment"
tags:
  - physics
  - chemistry
  - Higgs boson
people:
  - Albert Einstein
  - Galileo Galilei
  - Marie Curie
---

我想做的是查看我的博客中提到的所有人---跨越所有博客 posts---但 Jekyll 似乎没有填充 site.people 变量。我试着像这样想象 site.people 变量:

{
{
"people": [
    {%- for person in site.people -%}
    "{{ person[0] }}"{% unless forloop.last %},{% endunless %}
    {%- endfor -%}
],

}
}

但我在呈现的网页上看到的是:

{ { “people”: [],

} }

我需要做什么才能让 Jekyll 看到人的元数据?我是否需要以某种方式告诉 Jekyll 它需要查看其他元数据?

我认为您需要在第二个代码片段中将 site 替换为 page,请参阅 variables 的处理。

  • 站点:全球网站(例如_config.yml)
  • 页:当前页

另外我删除了数组索引 [0]

{
{
"people": [
    {%- for person in page.people -%}
    "{{ person }}"{% unless forloop.last %},{% endunless %}
    {%- endfor -%}
],

}
}

我的输出/结果


{ { “people”: [“Albert Einstein”,”Galileo Galilei”,”Marie Curie”],

} }

2020-10-23 更新:

全局_config.yml的一个片段来声明所有的物理学家。

...

physicists:
  - Albert Einstein
  - Galileo Galilei
  - Marie Curie
  - Isaac Newton
  - Nikola Tesla
  - Max Planck

...

获取任何 post

上所有物理学家的列表
---
title: "My great experiment"
tags:
  - physics
  - chemistry
  - Higgs boson
people:
  - Albert Einstein
  - Galileo Galilei
  - Marie Curie
---

## List all Physicists

{% for itm in site.physicists %}
    {{ itm }}
{% endfor %}