2012-09-14 22 views
62

Estoy usando un operador lógico en Jekyll pero no está funcionando.¿Cómo encadenar declaraciones if en Jekyll?

Página uno, dos y tres todos utilizan el mismo diseño (parte de una solución multilingüe, funciona bien, pero requiere bucles lógicos para un cierto control diseño para mantener las cosas secas.)

Aquí está el código:

{% if page.type == "post" %} 
{% include post.html %} 
{% elseif page.class == "contact" %} 
{% include contact.html %} 
{% else %} 
{{ content }} 
{% endif %} 

Si lo analizo solo como else y if else, con dos elementos del árbol, todo funciona. Pero tan pronto como uso una tercera condición, se rompe. ¿Estoy limitado a dos condicionales con Jekyll? Posiblemente pueda reestructurarme para hacer que un operador case sea aplicable, pero prefiero entender el problema fundamental aquí. Gracias a todos.

+8

Use 'elsif' en lugar de' elseif' – pjumble

+13

voy a votar para volver a abrir ya que esto ayudará a los futuros visitantes. Incluso [la documentación oficial de líquido] (http://wiki.shopify.com/UsingLiquid#If_.2F_Else_.2F_Unless) no menciona 'elsif'. – huon

+0

Consulte https://github.com/Shopify/liquid/wiki/Liquid-for-Designers –

Respuesta

112

En Jekyll/Líquido otra cosa, si se escribe elsif, es decir .:

{% if page.type == "post" %} 
{% include post.html %} 
{% elsif page.class == "contact" %} 
{% include contact.html %} 
{% else %} 
{{ content }} 
{% endif %} 
+0

¿Puede seguir usando {% else%} para obtener más declaraciones? – whatsnewsaes

Cuestiones relacionadas