Como clean_class e clean_id funcionam?

12

Eu sou novo no Drupal 8 e na sintaxe Twig. Não consigo entender como o filtro de trabalho clean_class "region | clean_class"? O que é clean_class aqui? Eu adicionei o seguinte código no meu arquivo page.html.twig

{%
  set classes = [
         'region',
         'region-' ~ region|clean_class,
       ]
%}

{{ dump(classes) }}

Seu resultado de impressão:

array (size=2)
  0 => string 'region' (length=6)
  1 => string 'region-' (length=7)
Reshma
fonte

Respostas:

18

clean_classé um filtro que chama o \Drupal\Component\Utility\Html::getClass()método na string, que:

Prepara uma sequência para uso como um nome de classe válido.

Basicamente, ele remove caracteres inválidos das classes HTML em preparação para renderização. clean_idé o equivalente para IDs HTML.

Também existem outros filtros registrados pelo núcleo, consulte TwigExtension :: getFilters para obter mais detalhes.

Clive
fonte
Parece que, no exemplo do OP, region | clean_class não está retornando nada porque as duas classes resultantes em {{dump (classes)}} são 'region' e 'region-' No momento, estou tendo o mesmo problema ao tentar adicionar um nome de termo de taxonomia para o ID usando attribute.setAttribute ('id', 'featured-industry-' ~ name | clean_id) Se eu remover o filtro | clean_id, ele imprimirá apenas 'Array'
amklose