我的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的文件夹层次结构
答案 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.md
和readme.md
?哪一个不起作用?