コード:
from jinja2 import Template
print(Template('{{ "2016.10.26_cc37528" | truncate(11, True) }}').render())
print(Template('{{ "2016.10.26_cc37528" | truncate(12, True) }}').render())
print(Template('{{ "2016.10.26_cc37528" | truncate(13, True) }}').render())
print(Template('{{ "2016.10.26_cc37528" | truncate(14, True) }}').render())
2016.10....
2016.10.2...
2016.10.26...
2016.10.26_...
2016.10....
2016.10.2...
2016.10.26_cc37528
2016.10.26_cc37528
{{ "2016.10.26_cc37528" | truncate(13, True) }}
これがleeway
引数が原因であるかどうかを確認してください。 デフォルト値は最近変更されました。
https://github.com/pallets/jinja/blob/master/jinja2/filters.py#L467
です。 余裕を0に設定すると、問題が修正されます。 短い文字列を使用すると、POLA違反になると思います。
ええ、 @ AMDmi3に同意します。 この問題も発生しました。
問題は、Jinjaが、汎用テンプレートエンジンとしての使用法と互換性のない意見のある実装を持っていることです。
私もこの問題を見つけ、バグを見つけるのに数時間を費やしました。 明らかに、新しいオプションには下位互換性があり、デフォルトはleeway = 0
必要があります。
新しいオプションleeway
を使い始めると、それが存在することがわかり、好きな値を使用します。 新しいパラメータについて知らない人は、コードを変更する必要はありません...
最も参考になるコメント
です。 余裕を0に設定すると、問題が修正されます。 短い文字列を使用すると、POLA違反になると思います。