我尝试根据一个字符串是否包含另一个字符串来为变量分配一个 true
或 false
值。我使用以下代码:
{% assign external_link = link.href contains '://' %}
对于此代码段,external_link
的值将与 link.href
的值相同(我检查了 external_link
的值code> 与命令 {{ external_link }}
)。
即使我在右侧加上括号,也会得到相同的结果:
{% assign external_link = (link.href contains '://') %}
问题是什么?如何获得 contains
表达式的 true
/false
结果?
最佳答案
您可以使用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}}
没有捕获
的另一个选项
{% 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
关于jekyll - 为什么 Jekyll's Liquid 'contains' 返回一个字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42373321/