如果和声明可能在html文件中Jekyll

时间:2019-06-26 00:55:50

标签: jekyll jekyll-bootstrap

我想在代码中创建if和and语句,为链接提供3个不同的选项。

我已经尝试过if / else代码,它可以工作。具有两个if语句(一个带有“ AND”的语句)将不起作用,因为错误指出在第一个“ if”之后应该有一个结束语句。我也尝试在第二个语句中使用'elseif'和'else if',但是没有运气。有没有办法做到我找不到的?

<li class="{% if page.body_class == 'language' %}active{% endif %} hidden-md hidden-lg">
                {% if page.alternate_mx == null %}
                  <a href="/mx/" title="En Español">Español</a>
                {% if page.alternate_mx == null and page.translate_mx %}
                  <a href="/mx/{{page.translate_mx}}" title="En Español">Español</a>
                {% else %}
                  <a href="{{ site.url }}{{site.baseurl}}{{page.alternate_mx}}" title="En Español">Español</a>
                {% endif %}
   </li>
  • 如果没有page.alternate_mx,则应显示第一个链接。
  • 但是如果没有page.alternate_mx并且有page.translate_mx,请使用第二个链接。
  • 如果有page.alternate_mx,请使用第三个链接。

我收到此错误: “液体异常:液体语法错误(第144行):'if'标记从未在/usr/src/app/_includes/header/header-en.html中关闭,该文件包含在/_layouts/default.html中 web_1 |错误:液体语法错误(第144行):“ if”标记从未关闭 web_1 | ...错误: web_1 |错误:运行jekyll build --trace以获得更多信息。“

2 个答案:

答案 0 :(得分:1)

它不起作用,因为那里有if if else endif,第一个if块没有关闭。如果elsif对您不起作用,则可以尝试重新排列语句,如下所示:

<li class="{% if page.body_class == 'language' %}active{% endif %} hidden-md hidden-lg">
        {% if page.alternate_mx == null %}
            {% if page.translate_mx %}
                <a href="/mx/{{page.translate_mx}}" title="En Español">Español</a>
            {% else %}
                <a href="/mx/" title="En Español">Español</a>
            {% endif %}
        {% else %}
          <a href="{{ site.url }}{{site.baseurl}}{{page.alternate_mx}}" title="En Español">Español</a>
        {% endif %}
</li>

另外,您可能应该使用&&而不是and,因为它们具有不同的优先级。

<li class="{% if page.body_class == 'language' %}active{% endif %} hidden-md hidden-lg">
                {% if page.alternate_mx == null %}
                  <a href="/mx/" title="En Español">Español</a>
                {% elsif page.alternate_mx == null && page.translate_mx %}
                  <a href="/mx/{{page.translate_mx}}" title="En Español">Español</a>
                {% else %}
                  <a href="{{ site.url }}{{site.baseurl}}{{page.alternate_mx}}" title="En Español">Español</a>
                {% endif %}
   </li>

答案 1 :(得分:0)

我最终使用了它,效果很好。

<li class="{% if page.body_class == 'language' %}active{% endif %} hidden-md hidden-lg">

{% if page.translate_mx %}
          <a href="{{page.translate_mx}}" title="En Español">Español</a>
    {% elsif page.alternate_mx == null %}
           <a href="/mx/" title="En Español">Español</a>
    {% else %}
          <a href="{{page.alternate_mx}}" title="En Español">Español</a>
 {% endif %}

</li>```