【问题标题】:jekyll site folder hierarchy list of subfolders onlyjekyll 站点文件夹层次结构 仅子文件夹列表
【发布时间】:2018-07-06 02:16:07
【问题描述】:

我的 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 的文件夹层次结构

【问题讨论】:

    标签: jekyll jekyll-bootstrap jekyll-theme


    【解决方案1】:

    我可以用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>
    

    如果该解决方案为空或除非它有一个页面,则此解决方案不会带来文件夹名称:(

    【讨论】:

      【解决方案2】:

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

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

      【讨论】:

      • 我将把它当作收藏来玩,目前,README.md 或 readme.md 在 /myFolder/subFolder/* 中没有被忽略,但是我发现我可以调用 {{ page.dir }} 这给我带来了目录文件,例如 {% for page in site.pages %} {{ page.dir }} {% endfor %} 我现在需要删除重复值(文件夹名称出现两次)
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-09-15
      • 1970-01-01
      • 2011-04-23
      相关资源
      最近更新 更多