1

我的 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 %}

但是当子文件夹内部有多个项目(page1.html、page2.html 等)时,它会在列表中重复,我的 _config.yml 也有

include:
 - subFolder
exclude:
 - README.md

但是,尽管事实上我已经排除了它,但我还是得到了 subFolder/README.html..

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

4

2 回答 2

2

我能做的最好的事情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>

如果它是空的或者除非它有一个页面,这个解决方案不会带来文件夹名称的问题:(

于 2018-07-07T17:37:43.123 回答
0

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

您是否同时排除README.mdreadme.md?哪个不工作?

于 2018-07-06T06:05:30.507 回答