編集: これは最新のソリューションではなくなりました。代わりに、 Martin Wang のassign
ベースのソリューションを参照して賛成してください:
{% assign val = page.content | number_of_words %}
{% if val > 200 %}
....
{% endif %}
>```
この回答が最初に書かれた時点(2011年)assign
は、フィルターでは機能しなかったため、実行可能なソリューションではありませんでした。この機能は、1 年後の 2012年に導入されました。
誰かが古いバージョンのLiquidでこの問題に対処する必要がある場合に備えて、2011年の元の回答を以下に残します。
そのようにタグ内でフィルターを使用することはできないと思います。それは不可能に思えます。
ただし、特定の問題を解決する可能性のある一連の条件を作成することができました (ページが 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 %}
よろしく!