究竟如何在Liquid中使用 map 过滤器?我在Jekyll中使用它。
---
my_array: [apple, banana, orage]
my_map:
hello: world
foo: bar
my_string: "how does this work?"
---
{{ page.my_map | map ... }}
那就是我迷路的地方。我似乎在文档中或其他任何地方都找不到此用法的任何示例。
顺便说一句,我还不了解Ruby,所以source code对我也不清楚。
从filter tests看来,以下内容应该会产生一些东西,但是在GitHub上,我什么也没得到:
{{ site.posts | map: 'title' | array_to_sentence_string }}
我希望我应该得到类似的东西:
My First Blog Post, Yet Another Post, and Third Posts
最佳答案
我可以通过这种方式做你想要做的事情:
{{ site.posts | map: 'to_liquid' | map: 'title' | array_to_sentence_string }}
解释:
我认为
site.posts
返回的是Post实例数组,而不是返回其to_liquid
版本(感觉很奇怪-可能是一个错误,应该报告它)。该类的实例不是respond_to? :title
,并且由于Liquid代码会检查该实例,因此map
对于所有实例均返回nil。关于ruby - 液体模板图过滤器,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/5751830/