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

时间:2018-07-06 02:16:08

标签: jekyll jekyll-bootstrap jekyll-theme

我的Jekyll文件夹结构为

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

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

我希望列出所有subMyFolders(仅第一级),其中没有subSub文件夹,并且内部没有文件

我的方法

{% 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 %}

部分完成任务,但是当subFolder内部有多个项目(page1.html,page2.html等)时,它在列表中重复出现,而我的_config.yml也具有

include:
 - subFolder
exclude:
 - README.md

但是尽管如此,我仍然得到了subFolder / README.html。

我只需要myFolders的文件夹层次结构

2 个答案:

答案 0 :(得分: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>

如果此解决方案为空或除非具有页面:(

答案 1 :(得分:0)

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

您是否同时排除了README.mdreadme.md?哪一个不起作用?