BH | |
---|---|
Typ | šablonový engine |
Vývojář | Společenství BEM |
Zapsáno v | JS , PHP (oficiální verze) |
Operační systém | Multiplatformní software |
Licence | Licence MIT |
webová stránka | bem.github.io/bh |
BH ( B EM H TML ) je kompilátor deklarativní šablonový engine pro JS .
BH umožňuje upravovat uzly stromu DOM stejným způsobem jako CSS – v deklarativní podobě.
S prohlášením JS :
bh . match ( 'tlačítko' , funkce ( ctx ) { ctx . tag ( 'tlačítko' ); }); bh . match ( 'button_legacy' , function ( ctx , json ) { ctx . tag ( 'input' ); ctx . attr ( 'type' , 'button' ); ctx . attr ( 'value' , json . content ); }) ; bh . match ( 'button_submit' , function ( ctx , json ) { ctx . tag ( 'input' ); ctx . attr ( 'type' , 'submit' ); ctx . attr ( 'value' , json . content ); }) ;Nebo podobná deklarace v syntaxi PHP :
$bh -> match ( 'tlačítko' , funkce ( $ctx ) { $ctx -> tag ( 'tlačítko' ); }); $bh -> match ( 'button_legacy' , funkce ( $ctx , $json ) { $ctx -> tag ( 'input' ); $ctx -> attr ( 'type' , 'button' ); $ctx -> attr ( 'value' , $json -> content ); }); $bh -> match ( 'button_submit' , funkce ( $ctx , $json ) { $ctx -> tag ( 'input' ); $ctx -> attr ( 'type' , 'submit' ); $ctx -> attr ( 'value' , $json -> content ); });A vstupní údaje:
[ { "block" : "button" , "content" : "Jen tlačítko" }, { "block" : "button" , "mods" : { "submit" : true }, "content" : "Odeslat tlačítko" } , { "block" : "button" , "mods" : { "legacy" : true }, "content" : "Starší tlačítko" }, { "block" : "button" , "mods" : { "starší " : true , "submit" : true }, "content" : "Starý styl tlačítka pro odeslání" } ]Dostáváme výsledek:
< button class = "button" > Jen tlačítko </ button > < input class = "button button_submit" type = "submit" value = "Submit button" /> < input class = "button button_legacy" type = "button" value = "Starší tlačítko" /> < input class = "button button_legacy button_submit" type = "submit" value = "Starý styl tlačítka pro odeslání" />Oficiální implementace BH jsou napsány v JavaScriptu a PHP .