twig striptags and html special chars

Sébastien picture Sébastien · Feb 23, 2015 · Viewed 37.2k times · Source

I am using twig to render a view and I am using the striptags filter to remove html tags. However, html special chars are now rendered as text as the whole element is surrounded by "". How can I either strip special chars or render them, while still using the striptags function ?

Example :

{{ organization.content|striptags(" >")|truncate(200, '...') }}

or

{{ organization.content|striptags|truncate(200, '...') }}

Output:

"QUI SOMMES NOUS ? > NOS LOCAUXNOS LOCAUXDepuis 1995,  Ce lieu chargé d’histoire et de tradition s’inscrit dans les valeurs"

Answer

Elyass picture Elyass · Dec 23, 2015

If it could help someone else, here is my solution

{{ organization.content|striptags|convert_encoding('UTF-8', 'HTML-ENTITIES') }}

You can also add a trim filter to remove spaces before and after. And then, you truncate or slice your organization.content

EDIT November 2017

If you want to keep the "\n" break lines combined with a truncate, you can do

{{ organization.content|striptags|truncate(140, true, '...')|raw|nl2br }}