1

我想在我的代码中创建 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 | 错误:Liquid 语法错误(第 144 行):'if' 标签从未关闭 web_1 | ...错误:web_1 | 错误:运行 jekyll build --trace 以获取更多信息。”

4

2 回答 2

2

它不起作用,因为你在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>
于 2019-06-26T05:12:33.023 回答
1

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

<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>```
于 2019-06-26T19:22:39.150 回答