2011-04-22 27 views
5

¿Cómo se usa exactamente el filtro de mapa en Liquid? Lo estoy usando en Jekyll.Liquid Template Map Filter

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

Ahí es donde me pierdo. Parece que no puedo encontrar ningún ejemplo de su uso en los documentos o en otro lugar en línea para el caso.

Por cierto, todavía no conozco a Ruby, por lo que tampoco me queda claro el source code.

Desde el filter tests parece que el siguiente debería producir algo, pero en GitHub, me estoy haciendo nada:

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

Yo esperaría que debería obtener algo como:

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

Respuesta

8

I fue capaz de hacer lo que quiere de esta manera:

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

Explicación:

Creo que site.posts devuelve una matriz de Post instancias en lugar de devolver su versión to_liquid (que se siente muy raro, probablemente es un error, debe informarlo). Las instancias de esa clase no son respond_to? :title, y dado que el código de líquido lo comprueba, el map devuelve cero para todas las instancias.