Жидкий фильтр карты шаблона - PullRequest
6 голосов
/ 22 апреля 2011

Каким образом можно использовать фильтр карты в Liquid?Я использую это в Джекилле.

---
my_array: [apple, banana, orage]
my_map:
  hello: world
  foo: bar
my_string: "how does this work?"
---
{{ page.my_map | map ... }}

Вот где я заблудился.Похоже, я не могу найти ни одного примера его использования в документации или где-либо еще в Интернете.

Кстати, я пока не знаю Ruby, поэтому исходный код мне тоже не ясно.

Из тестов фильтра похоже, что следующее должно что-то производить, но на GitHub я ничего не получаю:

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

Я ожидаю, что я должен получить что-то вроде:

My First Blog Post, Yet Another Post, and Third Posts

1 Ответ

8 голосов
/ 22 апреля 2011

Я смог сделать то, что вы хотите, таким образом:

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

Пояснение:

Я думаю, что site.posts возвращает массив Post экземпляров вместо того, чтобы возвращать их to_liquid версию (что кажется очень странным - вероятно, это ошибка, вы должны сообщить об этом). Экземпляры этого класса не respond_to? :title, и поскольку код Liquid проверяет это, map возвращает ноль для всех экземпляров.

...