nl_tokens: Recursive function for processing tags which extends class names according to BEM specs : http : // bem . github . com / bem - method / pages / beginning / beginning . ru . html <br > <br > It does several things : <br > <ul > <li > Expands complex class name ( according to BEM symbol semantics ) : . block__elem_modifier → . block . block__elem . block__elem_modifier < / li > <li > Inherits block name on child elements : . b - block > . __el > . __el → . b - block > . b - block__el > . b - block__el__el < / li > <li > Treats first dash symbol as __ < / li > <li > Double underscore ( or typographic – ) is also treated as an element level lookup e . g . ____el will search for element definition in parent’s parent element : . b - block > . __el1 > . ____el2 → . b - block > . b - block__el1 > . b - block__el2 < / li > < / ul >
pl_tokens: function process ( tree , profile ) { if ( tree . name ) bemParse ( tree , profile ) ; var abbrUtils = require ( 'abbreviationUtils' ) ; _ . each ( tree . children , function ( item ) { process ( item , profile ) ; if ( ! abbrUtils . isSnippet ( item ) && <mask> . start ) shouldRunHtmlFilter = true ; } ) ; return tree ; }