液体模板地图过滤器

时间:2011-04-22 02:49:47

标签: ruby templates github liquid jekyll

如何使用Liquid中的地图过滤器?我在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

1 个答案:

答案 0 :(得分:8)

我能够以这种方式做你想做的事:

{{ site.posts | map: 'to_liquid' | map: 'title' | array_to_sentence_string }}

说明:

我认为site.posts正在返回一个Post个实例的数组,而不是返回它们的to_liquid版本(这感觉非常奇怪 - 可能是一个错误,你应该报告它)。该类的实例不respond_to? :title,并且由于Liquid代码检查了该类,所有实例的map都返回nil。