templatetag_handlebars/templatetags/templatetag_handlebars.py
def verbatim_tags(parser, token, endtagname):
    """
    Javascript templates (jquery, handlebars.js, mustache.js) use constructs like:

    ::

        {{if condition}} print something{{/if}}

    This, of course, completely screws up Django templates,
    because Django thinks {{ and }} means something.

    The following code preserves {{ }} tokens.

    This version of verbatim template tag allows you to use tags
    like url {% url name %}. {% trans "foo" %} or {% csrf_token %} within.
    """
    text_and_nodes = []
    while 1:
        token = parser.tokens.pop(0)
        if token.contents == endtagname:
            break

        if token.token_type == template.base.TOKEN_VAR:
            text_and_nodes.append('{{')
            text_and_nodes.append(token.contents)

        elif token.token_type == template.base.TOKEN_TEXT:
            text_and_nodes.append(token.contents)

        elif token.token_type == template.base.TOKEN_BLOCK:
            try:
                command = token.contents.split()[0]
            except IndexError:
                parser.empty_block_tag(token)

            try:
                compile_func = parser.tags[command]
            except KeyError:
                parser.invalid_block_tag(token, command, None)
            try:
                node = compile_func(parser, token)
            except template.TemplateSyntaxError as e:
                if not parser.compile_function_error(token, e):
                    raise
            text_and_nodes.append(node)

        if token.token_type == template.base.TOKEN_VAR:
            text_and_nodes.append('}}')

    return text_and_nodes
def verbatim_tags(parser, token, endtagname):
    """
    Javascript templates (jquery, handlebars.js, mustache.js) use constructs like:

    ::

        {{if condition}} print something{{/if}}

    This, of course, completely screws up Django templates,
    because Django thinks {{ and }} means something.

    The following code preserves {{ }} tokens.

    This version of verbatim template tag allows you to use tags
    like url {% url name %}. {% trans "foo" %} or {% csrf_token %} within.
    """
    text_and_nodes = []
    while 1:
        token = parser.tokens.pop(0)
        if token.contents == endtagname:
            break

        if token.token_type == template.base.TOKEN_VAR:
            text_and_nodes.append('{{')
            text_and_nodes.append(token.contents)

        elif token.token_type == template.base.TOKEN_TEXT:
            text_and_nodes.append(token.contents)

        elif token.token_type == template.base.TOKEN_BLOCK:
            try:
                command = token.contents.split()[0]
            except IndexError:
                parser.empty_block_tag(token)

            try:
                compile_func = parser.tags[command]
            except KeyError:
                parser.invalid_block_tag(token, command, None)
            try:
                node = compile_func(parser, token)
            except template.TemplateSyntaxError as e:
                if not parser.compile_function_error(token, e):
                    raise
            text_and_nodes.append(node)

        if token.token_type == template.base.TOKEN_VAR:
            text_and_nodes.append('}}')

    return text_and_nodes
def verbatim_tags ( parser , token , endtagname ) : text_and_nodes = [ ] while 1 : token = parser . tokens . pop ( 0 ) if token . contents == endtagname : break if token . token_type == template . base . TOKEN_VAR : text_and_nodes . append ( '{{' ) text_and_nodes . append ( token . contents ) elif token . token_type == template . base . TOKEN_TEXT : text_and_nodes . append ( token . contents ) elif token . token_type == template . base . TOKEN_BLOCK : try : command = token . contents . split ( ) [ 0 ] except IndexError : parser . empty_block_tag ( token ) try : compile_func = parser . tags [ command ] except KeyError : parser . invalid_block_tag ( token , command , None ) try : node = compile_func ( parser , token ) except template . TemplateSyntaxError as e : if not parser . compile_function_error ( token , e ) : raise text_and_nodes . append ( node ) if token . token_type == template . base . TOKEN_VAR : text_and_nodes . append ( '}}' ) return text_and_nodes
Javascript templates (jquery, handlebars.js, mustache.js) use constructs like:

    ::

        {{if condition}} print something{{/if}}

    This, of course, completely screws up Django templates,
    because Django thinks {{ and }} means something.

    The following code preserves {{ }} tokens.

    This version of verbatim template tag allows you to use tags
    like url {% url name %}. {% trans "foo" %} or {% csrf_token %} within.
Javascript templates ( jquery handlebars . js mustache . js ) use constructs like :