Eu criei uma exibição para um nó que mostra o conteúdo como entidade renderizada. Entre outros, eu mostro o campo body no modelo de galho:
{{ content.field_body }}
Agora, gostaria de limitar o texto a 200 caracteres e colocar três pontos. Eu testei três maneiras diferentes de fazer isso, mas nada funcionou. O problema é que cada caminho conta e apara os caracteres HTML também.
1: Adicionei o formato "Aparado" em "Gerenciar exibição" => O texto é limitado, mas não está correto. E eu não tenho os três pontos.
2: Eu aparei o texto no modelo de galho. Mas para contar o texto, tenho que renderizá-lo primeiro. Assim, o twig gera o texto como HTML (vejo tags HTML na minha página!)
{% set text = content.field_body|render %}
{{ text|length > 200 ? text|slice(0, 200) ~ '...' : text }}
3: Tentei resolver o problema em template_preprocess_node (). Aqui também tenho o mesmo problema em contar a marcação HTML.
$body_text = $node->get('field_body')->getValue()[0]['value'];
$trimmed_text = substr($body_text, 0, 200) . '...';
Como posso aparar meu texto corretamente?
Muito obrigado pela sua ajuda!