Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Loops 循环浏览liquid中的目录及其子目录文件_Loops_Liquid - Fatal编程技术网

Loops 循环浏览liquid中的目录及其子目录文件

Loops 循环浏览liquid中的目录及其子目录文件,loops,liquid,Loops,Liquid,我对liquid templating language是一个新手,因为我正在开发的网站由jekyll提供支持,我们发布帖子,有时发布一系列帖子,所以我们在_posts目录中为系列帖子创建一个子目录。如果我不知道它们的名称或编号,我可以循环浏览目录中的所有文件吗? 我的文件树: 根 | _职位/ | post1.md post2.md 系列名称/ | post3.md你的问题的简短答案是肯定的 解决方案 将引导您显示所有_帖子的索引。具体来说,您将需要以下内容: <ul> {%

我对liquid templating language是一个新手,因为我正在开发的网站由jekyll提供支持,我们发布帖子,有时发布一系列帖子,所以我们在_posts目录中为系列帖子创建一个子目录。如果我不知道它们的名称或编号,我可以循环浏览目录中的所有文件吗? 我的文件树: 根 | _职位/ | post1.md post2.md 系列名称/ |
post3.md

你的问题的简短答案是肯定的

解决方案 将引导您显示所有_帖子的索引。具体来说,您将需要以下内容:

<ul>
  {% for post in site.posts %}
    <li>
      <a href="{{ post.url }}">{{ post.title }}</a>
    </li>
  {% endfor %}
</ul>
在这里您可以清楚地看到,子目录不会出现在最终站点的任何位置

额外学分 您可以使用{{post.path}}和一些仔细的字符串操作来检索原始目录结构。但是,此时,在您的应用程序中设置Category属性可能更容易。可以使用{category}检索category属性

纯粹作为一个学术练习,我继续检索目录


您可以决定这是否有用。

您的问题的简短答案是肯定的

解决方案 将引导您显示所有_帖子的索引。具体来说,您将需要以下内容:

<ul>
  {% for post in site.posts %}
    <li>
      <a href="{{ post.url }}">{{ post.title }}</a>
    </li>
  {% endfor %}
</ul>
在这里您可以清楚地看到,子目录不会出现在最终站点的任何位置

额外学分 您可以使用{{post.path}}和一些仔细的字符串操作来检索原始目录结构。但是,此时,在您的应用程序中设置Category属性可能更容易。可以使用{category}检索category属性

纯粹作为一个学术练习,我继续检索目录


你可以决定这是否有用。

我真的不知道这是否有用,但我还是会写下我的解决方案,只是因为我没有找到一个快速的解释

要遍历文件,只需在_config.yml文件中添加以下代码段:

之后,您可以像下面这样调用for循环:

注意:请注意,您的文件位于根目录中,在本例中,例如_articles/article01.md

范例


您可以在本教程中看到该行为,但没有在_config.yml文件中包含collection标记的注释

我真的不知道这是否有用,但我还是会写下我的解决方案,只是因为我没有找到快速的解释

要遍历文件,只需在_config.yml文件中添加以下代码段:

之后,您可以像下面这样调用for循环:

注意:请注意,您的文件位于根目录中,在本例中,例如_articles/article01.md

范例


您可以在本教程中看到该行为,但没有在_config.yml文件中包含collection标记的注释

这些文件是否在您的本地计算机上?您可以使用任何语言或脚本访问和循环它们。我不明白这跟杰基尔有什么关系?这只是一个静态站点生成器谢谢你的回答,你是对的,我会编辑这个问题,抱歉误解,我不知道如何循环使用liquid中的文件,是的,文件在我的本地计算机上。这是你要找的吗?听起来很相似谢谢你的帮助,我看到了这个问题,但这不是我要问的,我想循环浏览_posts目录及其子目录中的所有文件,就好像_posts目录没有子目录一样。。有什么方法可以用液体来做吗?这些文件在你的本地机器上吗?您可以使用任何语言或脚本访问和循环它们。我不明白这跟杰基尔有什么关系?这只是一个静态站点生成器谢谢你的回答,你是对的,我会编辑这个问题,抱歉误解,我不知道如何循环使用liquid中的文件,是的,文件在我的本地计算机上。这是你要找的吗?听起来很相似谢谢你的帮助,我看到了这个问题,但这不是我要问的,我想循环浏览_posts目录及其子目录中的所有文件,就好像_posts目录没有子目录一样。。有没有办法用液体来做?
  {% capture directory %}
      {% assign path = post.path | remove_first:'_posts/' | split:'/' %}
      {% for folder in path %}
          {% unless forloop.last %}
              {{ folder }}/
          {% endunless %}
      {% endfor %}
  {% endcapture %}
  Directory: {{directory}}
collections:
    articles:
              output: true
{% for article in site.articles %}
    {{ forloop.index  }}yes
{% endfor %}