質問

Githubページに静的なWebサイトを生成するためにJekyllと液体を使用しています。

文書内のコンテンツの量が特定の作品に達したかどうかについて、いくつかのコンテンツ決定を基にしたいと考えています。Jekyllには、ifタグで使用したい単語の数を数える液体フィルタがあります。私はこれを試しました:

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

しかしそれはうまくいかないようです。結果を変数に割り当てて、その結果を使用してフィルタから出力をキャプチャしようとしました。しかし、これまでのところ私は運がなかった。

誰もが液体タグでフィルターを使うことができていますか?

役に立ちましたか?

解決

そのようにタグ内のフィルタを使用することが可能ではないと思います。それはちょうど可能ではないようです。

しかし、私はあなたの特定の問題を解決するかもしれない一連の条件を構築することができました(ページが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 %}
.

雑談

他のヒント

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

これを試してください。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top