2012-09-14 9 views
62

Ich verwende einen logischen Operator in Jekyll, aber es funktioniert nicht.Wie kettet ich if-Anweisungen in Jekyll?

Seite eins, zwei und drei alle das gleiche Layout verwenden (Teil einer mehrsprachigen Lösung funktioniert gut, erfordert aber logische Schleifen für einige Layout-Kontrolle Dinge trocken zu halten.)

Hier ist der Code:

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

Wenn ich es auf nur eine else und eine if else Setup, mit irgendwelchen zwei der Struktur brechen, alles funktioniert. Aber sobald ich eine dritte Bedingung verwende, bricht sie. Bin ich mit Jekyll auf zwei Bedingungen beschränkt? Ich kann möglicherweise umstrukturieren, um einen Operator case anwendbar zu machen, aber ich würde lieber das grundlegende Problem hier verstehen. Danke allen.

+8

Verwenden 'elsif' statt' elseif' – pjumble

+13

Ich wähle wieder zu öffnen, da diese zukünftigen Besuchern helfen. Sogar [die offizielle Dokumentation für Flüssigkeit] (http://wiki.shopify.com/UsingLiquid#If_.2F_Else_.2F_Unless) erwähnt "elsif" nicht. – huon

+0

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

Antwort

112

In Jekyll/Flüssig-else-if elsif geschrieben ist, d.h .:

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

Können Sie {% else%} weiterhin für noch mehr Anweisungen verwenden? – whatsnewsaes