1 of 1 found this page helpful

DekiScript Statements

    If Else Statement

    Evaluate a conditional expression, if the outcome of the expression is non nil, false, or 0, execute the block immediately following the if statement.  Otherwise, execute the block following the optional else statement.

    Different languages treat different values that aren't a true/false boolean differently. In DekiScript false as well as nil and zero are logically false, while True and everything else (other than nil,false or 0) are treated as logically true.

    Usage Restrictions

    1.9.1 or later.

    Samples

          Output

    To conditionally include a template:

    {{
    if(date.hours(date.now) <= 12) { 
        template.stub()
    }
    }}

    This page is a stub.  You can help others by contributing more information to it.

     

    To conditionally emit one text or another:

    {{
    if(user.anonymous) { 
        "Welcome guest. Please register!" 
    } else {
        "Welcome back ".. user.name .. "!"
    }
    }}

    Welcome guest. Please register!

     

    Foreach Statement

    The foreach statements enables iteration over list, map, and xml values.  The foreach statement also sets the the global variable __count to indicate how many iterations it has performed so far.

    Usage Restrictions

    8.05.1 or later.

    Samples

                     Output

    Iterating over a list:

    {{ foreach(var x in [ 1, 2, 3 ]) { x } }}

    123

    Iterating over a map:

    {{ foreach(var x in { a: 1, b: 2, c: 3  }) { x } }}

    123

    Iterating over an xml document:

    {{ 
    var doc = web.xml(page.api);
    foreach(var x in doc['//page.parent']) { 
        xml.text(x, '@id'); ' ' 
    }
    }}

           

     

    Var Statement

    The var statement declares a new variable in the current scope.  Variables with the same name outside the current scope are not affected.  The declared variable remains accesible until the current scope ends.

    Usage Restrictions

    8.05.1 or later.

    Samples

        Output

    Declare a variable twice, inside and outside of a nested scope:

    {{
    var x = 10;
    if(true) {
        var x = 11;
    }
    x;
    }}

    11

       

     

    Let Statement

    The let statement assigns a new value to an existing variable.  If the variable does not exist, it is declared as if the let statement were a var statement.

    Usage Restrictions

    8.05.1 or later.

    Samples

           Output

    Reassign a variable twice of a nested scope:

    {{
    var x = 10;
    if(true) {
        let x = 11;
    }
    x;
    }}
    11

    Increment a variable:

    {{ var x = 10; let x += 2; x; }}
    12

    Decrement a variable:

    {{ var x = 10; let x -= 2; x; }}
    8

    Mutiply a variable:

    {{ var x = 10; let x *= 2; x; }}
    20

    Divide a variable:

    {{ var x = 10; let x /= 2; x; }}
    5

    Compute the modulo of a variable:

    {{ var x = 10; let x %= 2; x; }}
    0

    Concatenate to a variable:

    {{ var x = "hello "; let x ..= "world"; x; }}
    hello world

       

     

    Was this page helpful?
    Tag page
    You must login to post a comment.

    Copyright © 2011 MindTouch, Inc. Powered by