2017-02-21 37 views
0

Я пытаюсь назначить переменной значение true или false в зависимости от того, содержит ли строка другую строку. Я использую следующий код:Почему Liquid «содержит» строку Jekyll возвращает строку?

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

Для этого фрагмента external_link «s значение будет такой же, как link.href» значение s (я проверил значение external_link с командой {{ external_link }}).

я получить тот же результат, даже если я ставлю parenthesizes вокруг правой стороны:

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

В чем проблема, и как я могу получить true/false результат выражения contains?

ответ

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 

 Смежные вопросы

  • Нет связанных вопросов^_^