nl_tokens: / * Renders inverted ( ^ ) and normal ( # ) sections
pl_tokens: function ( template , context , partials ) { if ( ! includes ( "#" , template ) && ! includes ( "^" , template ) ) { return template ; } var that = this ; // for each {{#foo}}{{/foo}} section do... return template . replace ( sectionRegex , function ( match , type , name , content ) { var value = that . find ( name , context ) ; if ( type == "^" ) { // inverted section if ( ! value || is_array ( value ) && value . length === 0 ) { // false or empty list, render it return that . render ( content , context , partials , true ) ; } else { return "" ; } } else if ( type == "#" ) { // normal section if ( is_array ( value ) ) { // Enumerable, Let's loop! return utils . <mask> ( value , function ( row ) { return that . render ( content , that . create_context ( row ) , partials , true ) ; } ) . join ( "" ) ; } else if ( is_object ( value ) ) { // Object, Use it as subcontext! return that . render ( content , that . create_context ( value ) , partials , true ) ; } else if ( typeof value === "function" ) { // higher order section return value . call ( context , content , function ( text ) { return that . render ( text , context , partials , true ) ; } ) ; } else if ( value ) { // boolean section return that . render ( content , context , partials , true ) ; } else { return "" ; } } } ) ; }