How can I limit the length of the text, e.g., 50, and put three dots in the display?
{% if myentity.text|length > 50 %}
{% block td_text %} {{ myentity.text}
Update for Twig 2 and Twig 3.
truncate filter is not available, instead of it you may use u-filter
here is an example:
{{ 'Lorem ipsum'|u.truncate(8) }}
Lorem ip
{{ 'Lorem ipsum'|u.truncate(8, '...') }}
Lorem...
Note: this filter is part of StringExtension that can be required by
twig/string-extra
@olegkhuss solution with named UTF-8 Elipsis:
{{ (my.text|length > 50 ? my.text|slice(0, 50) ~ '…' : my.text) }}
Another one is:
{{ myentity.text[:50] ~ '...' }}
I know this is a very old question, but from twig 1.6 you can use the slice filter;
{{ myentity.text|slice(0, 50) ~ '...' }}
The second part from the tilde is optional for if you want to add something for example the ellipsis.
Edit: My bad, I see the most up-voted answer do make use of the slice filter.
{{ myentity.text|length > 50 ? myentity.text|slice(0, 50) ~ '...' : myentity.text }}
You need Twig 1.6
why not use twig's truncate or wordwrap filter? It belongs to twig extensions and lib is part of Symfony2.0 as i see.
{{ text|truncate(50) }}