jekyll - 为什么 Jekyll's Liquid 'contains' 返回一个字符串?

标签 jekyll contains liquid

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

{% 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/

相关文章:

ruby - 如何在 Jekyll 中检索当前的帖子索引号?

jekyll - Jekyll 和 GitHub 页面有什么区别?

Jekyll:链接到静态层次结构中所有子页面的生成器

CakePHP 2.1 使用包含条件进行查找

c++ - boost::algorithm::contains std::vector<long> & long 值

swift - 有没有办法结合开关和包含?

ruby - 为什么我的 Jekyll 默认配置不起作用?

Jekyll Liquid 子导航未正确选择

ruby - bundle 执行 jekyll 服务 : cannot load such file

git - 设置一个 git post-receive 钩子(Hook)