He creado una vista para un nodo que muestra el contenido como entidad representada. Entre otros, imprimo el campo del cuerpo en la plantilla de ramita:
{{ content.field_body }}
Ahora, me gustaría limitar el texto a 200 caracteres y poner tres puntos. He probado tres formas diferentes de hacerlo, pero nada ha funcionado. El problema es que cada forma cuenta y recorta los caracteres HTML también.
1: He agregado el formato "Recortado" en "Administrar pantalla" => El texto es limitado pero no correcto. Y no tengo los tres puntos.
2: He recortado el texto en la plantilla de ramita. Pero para contar el texto, primero tengo que representarlo. De este modo, twig genera el texto como HTML (¡veo etiquetas HTML en mi página!)
{% set text = content.field_body|render %}
{{ text|length > 200 ? text|slice(0, 200) ~ '...' : text }}
3: He intentado resolver el problema en template_preprocess_node (). Aquí tengo el mismo problema con contar el marcado HTML también.
$body_text = $node->get('field_body')->getValue()[0]['value'];
$trimmed_text = substr($body_text, 0, 200) . '...';
¿Cómo puedo recortar mi texto correctamente?
¡Muchas gracias por su ayuda!