Использование фильтров в тегах Liquid

Я использую jekyll и Liquid для создания статического веб-сайта на страницах github.

Я хочу основать некоторые решения для контента о том, достигло ли количество контента в документе определенного количества работ. jekyll имеет жидкостный фильтр, который подсчитывает количество слов, которые я хочу использовать в теге if. Я пробовал это:

{% if page.content | number_of_words > 200 %} 
    ...
{% endif %} 

Но это не работает. Я также попытался присвоить результат переменной и использовать ее и захватить вывод из фильтра. Но до сих пор мне не повезло.

Кто-нибудь мог использовать фильтр в жидком теге?

Ответ 1

Я не думаю, что это возможно использовать фильтры внутри тегов; это просто не представляется возможным.

Тем не менее, мне удалось создать набор условий, которые могли бы решить вашу конкретную проблему (проницательная страница более длинная или короче 200 слов). Это он:

{% capture truncated_content %}{{ page.content | truncatewords: 200, '' }}{% endcapture %}

{% if page.content != truncated_content %}
  More than 200 words
{% else %}
  Less or equal to 200 words
{% endif %}

Чтобы сделать вычисления более точными, было бы разумным использовать оператор strip_html. Это дает нам:

{% capture text %}{{ page.content | strip_html }}{% endcapture %}
{% capture truncated_text %}{{ text | truncatewords: 200, '' }}{% endcapture %}

{% if text != truncated_text %}
  More than 200 words
{% else %}
  Less or equal to 200 words
{% endif %}

Привет!

Ответ 2

{% assign val = page.content | number_of_words %}
{% if val > 200 %}
 ....
{% endif %}

Ответ 3

{% capture number_of_words_in_page %}{{page.content | number_of_words}}{% endcapture %}
{% if number_of_words_in_page > 200 %} 
    ...
{% endif %} 

Попробуйте это.

Ответ 4

Только что нашел https://github.com/mojombo/jekyll/wiki/Plugins, в котором приводится подробная информация о том, как написать пользовательский тег для Github. Это похоже на возможное направление, а также предоставление доступа ко многим другим настройкам других разработчиков.