иерархия папок сайта jekyll только список подпапок - PullRequest
0 голосов
/ 06 июля 2018

У меня есть структура папок Jekyll как

_includes
_layouts
_post
myFolder
   subMyFolder
   - readme.md
   subMyFolder2
   - README.md

   subMyFolder/subSub
   - readme.md
   - something.html
index.html

Я хочу перечислить все вложенные папки (только первый уровень) без вложенных папок и без файлов внутри

Мой подход

{% for my_page in site.pages %}
  {% if my_page.url contains 'myFolder' %}
    {% if my_page.title %}
    <a class="page-link" href="{{ my_page.url | prepend: site.baseurl }}">{{ my_page.title }}</a> •
    {% endif %}
  {% endif %}
{% endfor %}

получить работу частично не следует, однако, когда в подпапке есть несколько элементов (page1.html, page2.html и т. Д.), Это повторяется в списке, а в моем _config.yml есть

include:
 - subFolder
exclude:
 - README.md

но все же я получаю subFolder / README.html, несмотря на то, что я его исключил ..

Мне нужна только иерархия папок myFolders

Ответы [ 2 ]

0 голосов
/ 07 июля 2018

Лучшее, что я мог сделать с page.dir, это напечатать подпапки myFolder, при условии, что в item.path

нет другой страницы с myFolder.
{% assign tools = site.pages | where_exp: "item" , "item.path contains 'myFolder'"| map: 'dir' | uniq %}
<ul>
  {% for tool in tools %}
    <li><a class="page-link" href="{{ tool | prepend: site.baseurl }}">{{ tool }}</a></li>
  {% endfor %}
</ul>

проблема, это решение не приносит имя папки, если она пуста или если у нее нет страницы: (

0 голосов
/ 06 июля 2018

Я думаю, что вы должны работать с пользовательскими коллекциями вместо подпапок таким образом, но я не уверен, каковы ваши причины.

Вы исключаете как README.md, так и readme.md? Какой из них не работает?

...