【问题标题】:Why Jekyll's Liquid 'contains' returns a string?为什么 Jekyll 的 Liquid 'contains' 返回一个字符串?
【发布时间】:2017-02-21 16:51:54
【问题描述】:

我尝试根据字符串是否包含另一个字符串来为变量分配truefalse 值。我使用以下代码:

{% assign external_link = link.href contains '://' %}

对于这个 sn-p,external_link 的值将与 link.href 的值相同(我使用命令 {{ external_link }} 检查了external_link 的值)。

即使我在右侧加上括号,我也会得到相同的结果:

{% assign external_link = (link.href contains '://') %}

有什么问题,我怎样才能得到contains 表达式的true/false 结果?

【问题讨论】:

    标签: jekyll contains liquid


    【解决方案1】:

    你可以使用capture过滤标签来获取contains标签的结果:

    {% assign link = "http://example.com "%}
    {% capture has_link %}{% if link contains '://' %}Yes{% else %}No{% endif %}{% endcapture%}
    {{has_link}}
    
    {% assign link = "example.com "%}
    {% capture has_link %}{% if link contains '://' %}Yes{% else %}No{% endif %}{% endcapture%}
    {{has_link}}
    

    没有capture的另一个选项

    {% assign link = "http://example.com "%}
    {% if link contains '://' %}
    {% assign has_link = "yes" %}
    {% else %}
    {% assign has_link = "no" %}
    {% endif %}
    {{has_link}}
    
    {% assign link = "example.com "%}
    {% if link contains '://' %}
    {% assign has_link = "yes" %}
    {% else %}
    {% assign has_link = "no" %}
    {% endif %}
    {{has_link}}
    

    输出:

    yes
    
    no
    

    【讨论】:

      猜你喜欢
      • 2010-10-04
      • 1970-01-01
      • 2013-05-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-03-12
      • 2013-10-22
      • 2021-10-09
      相关资源
      最近更新 更多