Jekyll:仅渲染嵌套集合的顶级元素?

时间:2019-06-18 03:02:41

标签: html jekyll liquid

使用Jekyll Liquid模板:我该如何使用for循环渲染项目(在集合中),但仅将这些元素输出到集合层次结构的顶部

proj_folder
  - _items
    • item_1.md
    • item_2.md
    - subfolder_1
      • item_1-1.md
      • item_1-2.md
    - subfolder_2
      • item_2-1.md
      • item_2-2.md

好的,所以如果我为循环做一个标准:

{% for item in site.items %}        
    <p>{{ item.name }}</p>
{% endfor %} 

我会得到类似的东西

Item 1
Item 2
Item 1-1
Item 1-2
Item 2-1
Item 2-2

但是我真的想停在顶层。所以我只想要这个(不包括子文件夹):

Item 1
Item 2

我看到过有人在monkey with frontmatter上发表过的帖子,这些帖子将顶级商品明确标记为“ top”或类似名称。这对我不起作用;我只需要在模板逻辑中执行此操作。可能吗?

谢谢。

1 个答案:

答案 0 :(得分:1)

您可以查看page.url以确定它是否是子文件夹。您可以将其分割为斜线并检查其长度。

类似这样的东西(未经测试):

{% for item in site.items %}
    {% assign itemurl = item.url | split: '/' %}
    {% unless itemurl[1] %}
      <p>{{ item.name }}</p>
    {% endunless %}
{% endfor %}