首页 文章

jekyll站点文件夹层次结构仅包含子文件夹的列表

提问于
浏览
1

我有我的Jekyll文件夹结构

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

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

我希望列出所有没有subSub文件夹且没有文件的subMyFolders(只是第一级)

我的方法

{% 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 回答

  • 1

    尽管在item.path上没有myFolder的其他页面,但我可以用 page.dir 这打印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

    我认为您应该以这种方式使用自定义集合而不是子文件夹,但我不确定您的理由是什么 .

    你是否排除 README.mdreadme.md ?哪一个不起作用?

相关问题