コード例 #1
0
ファイル: loadpage.py プロジェクト: jldupont/jldupont.com
def do_loadpageurl(parser, token):
    """
        Loads a page (through an HTTP URL accessible resource) in a variable 
        {% lpu "url" "var" %}
    """
    try:
        liste = token.split_contents()
        tag_name = liste[0]
        url = liste[1]
        var = liste[2]
    except:
        raise template.django.template.TemplateSyntaxError, "%r tag requires two arguments" % token.contents.split()[0]
      
    verifyQuotes( tag_name, (url,var) )
    url, var = unquote( [url, var] )   
    return LoadPageURLNode( url, var )
コード例 #2
0
ファイル: loadpage.py プロジェクト: jldupont/jldupont.com
def do_loadpage(parser, token):
    """
        Loads a page in a variable 
        {% lp "page" "var" %}
    """
    try:
        liste = token.split_contents()
        tag_name = liste[0]
        page = liste[1]
        var  = liste[2]
    except:
        raise template.django.template.TemplateSyntaxError, "%r tag requires two arguments" % token.contents.split()[0]
      
    verifyQuotes( tag_name, (page,var) )
    page, var = unquote( [page, var] )   
    return LoadPageNode( page, var )
コード例 #3
0
ファイル: include.py プロジェクト: jldupont/jldupont.com
def do_include(parser, token):
    """
        include
        {% i "page" "param1-value"... %}
    """
    try:
        liste    = token.split_contents()
        tag_name = liste[0]
        page     = liste[1]
        params   = liste[2:]
    except:
        raise template.django.template.TemplateSyntaxError, "%r tag requires at least 2 arguments" % token.contents.split()[0]

    verifyQuotes( tag_name, page )
    verifyQuotes( tag_name, params )
    
    return IncludeNode( page[1:-1], params )
コード例 #4
0
ファイル: include.py プロジェクト: jldupont/jldupont.com
def do_cond_include(parser, token):
    """
        conditional include
        {% ci variable "page" "param1-value"... %}
    """
    try:
        liste    = token.split_contents()
        tag_name = liste[0]
        var      = liste[1]
        page     = liste[2]
        params   = liste[3:]
    except:
        raise template.django.template.TemplateSyntaxError, "%r tag requires at least 3 arguments" % token.contents.split()[0]

    verifyQuotes( tag_name, page )
    verifyQuotes( tag_name, params )
    
    return CondIncludeNode( var, page[1:-1], params )
コード例 #5
0
ファイル: anchor.py プロジェクト: jldupont/jldupont.com
def do_anchor_image(parser, token):
    """
        Anchor with Image
        {% ai2 "url" "title" "src" ["target"] %}
    """
    _min = AnchorImageNode.numMinParams()
    _max = AnchorImageNode.numMaxParams()
    
    try:
        liste = token.split_contents()
        _num = len(liste) - 1
        assert( (_num <= _max) and (_num >= _min) )        
    except:
        raise template.django.template.TemplateSyntaxError, "%r tag requires three arguments" % token.contents.split()[0]
    
    tag_name = liste.pop(0)
    verifyQuotes(tag_name, liste)
    uparams = unquote( liste )

    return AnchorImageNode( uparams )
コード例 #6
0
ファイル: anchor.py プロジェクト: jldupont/jldupont.com
def do_anchor(parser, token):
    """
        Anchor
        {% a "url" "text" ["target"] %}
    """
    try:
        liste = token.split_contents()
        tag_name = liste[0]
        url  = liste[1]
        text = liste[2]
    except:
        raise template.django.template.TemplateSyntaxError, "%r tag requires two or three arguments" % token.contents.split()[0]

    target = liste[3] if (len(liste)==4) else None
    if (target):
        verifyQuotes( tag_name, target )
       
    verifyQuotes( tag_name, (url,text) )
    url, text, target = unquote( [url, text, target] )   
    return AnchorNode( url, text, target )
コード例 #7
0
ファイル: vars.py プロジェクト: jldupont/jldupont.com
            {% varset "var-name" "var-value" %}
        Form #2:
            {% varset "var-name" %}
                value
            {% endvarset %}
    """
    try:
        liste = token.split_contents()
        assert(len(liste)>=2)
    except Exception,e:
        logging.warn('varset: msg[%s]' % e)
        raise template.django.template.TemplateSyntaxError, "%r tag requires 2 or 3 arguments" % token.contents.split()[0]

    tag_name = liste[0]
    varName  = liste[1]
    verifyQuotes( tag_name, varName )

    if (len(liste) == 2):
        varValue = parser.parse(('endvarset',))
        parser.delete_first_token()
        
    if (len(liste) == 3):
        varValue = liste[2]
        verifyQuotes( tag_name, varValue )
        varValue = liste[2][1:-1]

    return VarSetNode( varName[1:-1], varValue )

class VarSetNode(template.django.template.Node):
    
    def __init__(self, key, value):