Джекилл: сделать элементы верхнего уровня (только) вложенной коллекции? - PullRequest
0 голосов
/ 18 июня 2019

Использование шаблонов 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

Я видел сообщения, где люди обезьяна с frontmatter , явно помечая элементы верхнего уровня как "top "или что-то подобное.Это не сработает для меня;Мне нужно сделать это только в шаблонной логике.Возможно?

Спасибо.

1 Ответ

1 голос
/ 18 июня 2019

Вы можете посмотреть на page.url, чтобы определить, является ли это подпапкой или нет. Вы можете разбить его на косую черту и проверить длину.

Примерно так (не проверено):

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