中间人循环遍历数据文件夹中的文件
Middleman loop through files in data folder
我正在尝试找出调用 /data
文件夹中一系列文件的正确语法。
例如,我在 /data
中有一些文件,每个文件的格式为 article1.yml
、article2.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', '#']
,因此我能够获取数组中的第一项以获取特定的文章数据。
我正在尝试找出调用 /data
文件夹中一系列文件的正确语法。
例如,我在 /data
中有一些文件,每个文件的格式为 article1.yml
、article2.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', '#']
,因此我能够获取数组中的第一项以获取特定的文章数据。