BH (motor de plantillas)

BH
Tipo de motor de plantillas
Desarrollador Comunidad BEM
Escrito en JS , PHP (versiones oficiales)
Sistema operativo Software multiplataforma
Licencia Licencia MIT
Sitio web bem.github.io/bh

BH ( B EM H TML ) es un motor de plantillas declarativas de compilación para JS .

BH le permite modificar los nodos del árbol DOM de la misma manera que lo hace CSS , en forma declarativa.

Ejemplo

Tener una declaración JS :

bh _ coincidencia ( 'botón' , función ( ctx ) { ctx . etiqueta ( 'botón' ); }); bh _ coincidencia ( 'button_legacy' , function ( ctx , json ) { ctx . tag ( 'input' ); ctx . attr ( 'type' , 'button' ); ctx . attr ( 'value' , json . content ); }) ; bh _ coincidencia ( 'button_submit' , function ( ctx , json ) { ctx . tag ( 'input' ); ctx . attr ( 'type' , 'submit' ); ctx . attr ( 'value' , json . content ); }) ;

O una declaración similar en la sintaxis de PHP :

$bh -> partido ( 'botón' , función ( $ctx ) { $ctx -> etiqueta ( 'botón' ); }); $bh -> coincidencia ( 'button_legacy' , función ( $ctx , $json ) { $ctx -> etiqueta ( 'input' ); $ctx -> attr ( 'tipo' , 'botón' ); $ctx -> attr ( 'valor' , $json -> contenido ); }); $bh -> coincidencia ( 'button_submit' , función ( $ctx , $json ) { $ctx -> etiqueta ( 'input' ); $ctx -> attr ( 'type' , 'submit' ); $ctx -> attr ( 'valor' , $json -> contenido ); });

Y datos de entrada:

[ { "bloquear" : "botón" , "contenido" : "Solo un botón" }, { "bloquear" : "botón" , "mods" : { "enviar" : verdadero }, "contenido" : "botón Enviar" } , { "bloquear" : "botón" , "mods" : { "heredado" : verdadero }, "contenido" : " botón heredado" }, { "bloquear" : "botón" , "mods" : { "heredado " : verdadero , "enviar" : verdadero }, "contenido" : "Botón de enviar de estilo antiguo" } ]

Obtenemos el resultado:

< clase de botón = "botón" > Solo un botón </ botón > < clase de entrada = "botón button_submit" tipo = "enviar" valor = "botón Enviar" /> < clase de entrada = "botón button_legacy" tipo = valor de "botón" = "Botón heredado" /> < clase de entrada = "botón button_legacy button_submit" type = "enviar" value = "Botón de envío de estilo antiguo" />

Implementaciones

Las implementaciones oficiales de BH están escritas en JavaScript y PHP .

Véase también

Enlaces

Notas