中间人循环遍历数据文件夹中的文件

Middleman loop through files in data folder

我正在尝试找出调用 /data 文件夹中一系列文件的正确语法。

例如,我在 /data 中有一些文件,每个文件的格式为 article1.ymlarticle2.yml 等。我如何在我的模板中循环遍历它们?我假设最直接的方法是调用文件名中的数字增量,如下所示:

<% data.article-[1,2,3].each do |article| %> <p><<%= article.title %></p> <% end %>

我见过其他人问 similar 问题,但没有找到一个很好的例子来查看循环遍历所有可用文件,或者像我的示例一样循环遍历数字增量。

@Anthonytkim 它们在数据的文件夹中吗?即 /data/article/article1.yml?如果是这样,要简单地抓住它们,试试这个:

<% data.article.each do |id, article| %>
... do stuff ...
<% end %>

要只抓取一些项目,请尝试使用 first() 语法:

<% data.article.first(7).each do |id, article| %>
... do stuff ...
<% end %>

如果想从中间抓取范围,可以结合first()和drop()。例如,如果我想要第 5、6 和 7 项:

<% data.article.first(7).drop(4).each do |id, article| %>
... do stuff ...
<% end %>

如果你想以相反的顺序输出它们,试试这个(你也可以结合 first() 和 drop() 语法):

<% data.article.reverse_each do |id, article| %>
... do stuff ...
<% end %>

使用 Middleman 4.3.2,我能够像这样遍历数据文件夹中的多个文件:

<% data.article.each do |article| %>
  <p><%= data.article.fetch(article[0]).title %></p>
<% end %>

在上面的代码中,article 设置为某个数组,如下所示:['article_name', '#'],因此我能够获取数组中的第一项以获取特定的文章数据。