2017-02-21 87 views
0

我嘗試根據字符串是否包含另一個字符串,嘗試將值分配給一個truefalse值。我用下面的代碼:爲什麼Jekyll的Liquid'contains'會返回一個字符串?

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

對於該片段的external_link的值將是相同link.href的值(I與命令{{ external_link }}檢查external_link的值)。

我會得到相同的結果,即使我把parenthesizes周圍的右側:

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

有什麼問題,我怎麼能得到contains表達的true/false結果呢?

回答

0

可以使用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 
相關問題