在Jekyll中,如何为集合呈现自定义元数据?

时间:2017-12-30 19:16:57

标签: jekyll github-pages

我的_config.yml文件中有以下内容:

collections:
  nr_qa:
    output: true
    permalink: /:collection/:name
    title: 'Node-RED Questions and Answers'
    descriptions: 'Node-RED is a flow-based (visual) programming tool. These pages have some information that may be currently missing from the documentaiton.'
  github_pages:
    title: 'GitHub Pages and Jekyll/Liquid'
    description: 'Hints and tips on using Jekyll for publishing to GitHub Pages.'
    output: true
    permalink: /:collection/:name

我想为我的馆藏创建一个自动索引。所以我使用这样的代码:

## {{ site.collections.github_pages.title }}

{{ site.collections.github_pages.description }}

<ul>
{% for item in site.github_pages %}
  <li>
    <a href="{{ item.url }}">{{ item.title | replace:'_',' ' }}</a>
    <p>{% if item.description %}
        {{ item.description }}
    {% else %}
        {{ item.excerpt | strip_html }}
    {% endif %}</p>
  </li>
{% endfor %}
</ul>

是的,我知道我在那里混淆了我的降价和HTML。与这个问题无关。

问题在于{{ site.collections.github_pages.title }}{{ site.collections.github_pages.description }}即使我认为应该也不会呈现任何内容。

有人能指出我的错误吗?

1 个答案:

答案 0 :(得分:1)

问题是titledescription应该包含在每个集合中,而不是_config.yml中。

查看Accessing Collection AttributesPermalink了解更多详情。

更新

title可以出现在_config.yml中的每个集合元数据中。问题是你如何访问这些变量。

一种方法是为每个集合设置一个特定的布局,然后您可以访问它们,如:

{% assign col = site.collections | where: 'label','github_pages' | first%}.
TITLE: {{ col.title }}.

DESCRIPTION: {{ col.description }}.