液体模板地图过滤器

kzh*_*kzh 6 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 ... }}
Run Code Online (Sandbox Code Playgroud)

这就是我迷路的地方.我似乎无法在文档或其他任何其他网站上找到它的使用示例.

顺便说一句,我不知道Ruby,所以源代码对我来说也不清楚.

过滤器测试看起来下面应该会产生一些东西,但是在GitHub上,我什么都没得到:

{{ site.posts | map: 'title' | array_to_sentence_string }}
Run Code Online (Sandbox Code Playgroud)

我希望我应该得到类似的东西:

My First Blog Post, Yet Another Post, and Third Posts
Run Code Online (Sandbox Code Playgroud)

kik*_*ito 8

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

{{ site.posts | map: 'to_liquid' | map: 'title' | array_to_sentence_string }}
Run Code Online (Sandbox Code Playgroud)

说明:

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