How do I chain if statements in Jekyll?

Ruby on-RailsRubyJekyll

Ruby on-Rails Problem Overview


I am using a logic operator in Jekyll but it's not working.

Page one, two and three all use the same layout (part of a multilingual solution, works good but requires logical loops for some layout control to keep things DRY.)

Here's the code:

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

If I break it down to just an else and an if else setup, with any two of the tree, everything works. But as soon as I use a third condition it breaks. Am I limited to two conditionals with Jekyll? I can potentially restructure to make a case operator applicable, but I'd prefer to understand the fundamental problem here. Thanks all.

Ruby on-Rails Solutions


Solution 1 - Ruby on-Rails

In Jekyll/Liquid else-if is spelt elsif, i.e.:

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

Solution 2 - Ruby on-Rails

You can either use else if or elsif. elseif is wrong and will throw an error.

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
QuestionmotleydevView Question on Stackoverflow
Solution 1 - Ruby on-RailshuonView Answer on Stackoverflow
Solution 2 - Ruby on-RailsAsaizumiView Answer on Stackoverflow