Example #1
0
def spaceless(writer, node):
    original = writer.spaceless
    writer.spaceless = True
    writer.warn('entering spaceless mode with different semantics', node)
    # do the initial stripping
    nodelist = list(node.nodelist)
    if nodelist:
        if isinstance(nodelist[0], TextNode):
            nodelist[0] = TextNode(nodelist[0].s.lstrip())
        if isinstance(nodelist[-1], TextNode):
            nodelist[-1] = TextNode(nodelist[-1].s.rstrip())
    writer.body(nodelist)
    writer.spaceless = original
Example #2
0
def pybb_csrf(parser, token):
    """
    This tag returns CsrfTokenNode if CsrfViewMiddleware is enabled, or empty string if not
    """

    if 'django.middleware.csrf.CsrfViewMiddleware' in settings.MIDDLEWARE_CLASSES:
        from django.template.defaulttags import CsrfTokenNode
        return CsrfTokenNode()
    else:
        return TextNode('')
Example #3
0
 def nevercache(parser, token):
     """
     Tag for two phased rendering. Converts enclosed template
     code and content into text, which gets rendered separately
     in ``mezzanine.core.middleware.UpdateCacheMiddleware``.
     This is to bypass caching for the enclosed code and content.
     """
     text = []
     end_tag = "endnevercache"
     tag_mapping = {
         TOKEN_TEXT: ("", ""),
         TOKEN_VAR: ("{{", "}}"),
         TOKEN_BLOCK: ("{%", "%}"),
         TOKEN_COMMENT: ("{#", "#}"),
     }
     delimiter = nevercache_token()
     while parser.tokens:
         token = parser.next_token()
         if token.token_type == TOKEN_BLOCK and token.contents == end_tag:
             return TextNode(delimiter + "".join(text) + delimiter)
         start, end = tag_mapping[token.token_type]
         text.append("%s%s%s" % (start, token.contents, end))
     parser.unclosed_block_tag(end_tag)
Example #4
0
def do_tag2(parser, token):
    return TextNode('<app 2 lib 2 tag 2>')
Example #5
0
def do_tag1(parser, token):
    return TextNode('<app 1 lib 2 tag 1>')
Example #6
0
def do_tag3(parser, token):
    return TextNode('<app 3 sub_app1 lib 3 tag 3>')
Example #7
0
def do_tag1(parser, token):
    return TextNode('<app 2 lib 1 tag 1>')
Example #8
0
def do_tag2(parser, token):
    return TextNode('<app 1 lib 1 tag 2>')