【问题标题】:Jekyll: render top level elements (only), of nested collection?Jekyll:渲染嵌套集合的顶级元素(仅)?
【发布时间】:2019-06-18 03:02:41
【问题描述】:

使用 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循环:

{% 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 明确地将顶级项目标记为“顶级”或类似的帖子。这对我不起作用;我只需要在模板逻辑中执行此操作。可能吗?

谢谢。

【问题讨论】:

    标签: html jekyll liquid


    【解决方案1】:

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

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

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

    【讨论】:

    • 嘿,这很聪明。谢谢。
    猜你喜欢
    • 2019-12-21
    • 2023-03-21
    • 2015-10-22
    • 2019-05-12
    • 1970-01-01
    • 2012-11-24
    • 1970-01-01
    • 2014-08-16
    相关资源
    最近更新 更多