Skip to content

Conformance Examples 0.1.0 — Render: unless-block

unless-empty-array-renders-body

Empty JsonArray is falsy so {{#unless}} renders its body.

Template

{{#unless items }}empty{{/unless}}

Context

{
    "items": []
}

Output

empty

unless-empty-object-renders-else

Empty JsonObject is truthy so {{#unless}} renders its else arm.

Template

{{#unless obj }}empty{{else}}present{{/unless}}

Context

{
    "obj": {}
}

Output

present

unless-falsy-renders-body

Identifier resolves to false: the body renders.

Template

{{#unless flag }}no{{/unless}}

Context

{
    "flag": false
}

Output

no

unless-jsonnull-renders-body

An explicit JsonNull is falsy so {{#unless}} renders its body.

Template

{{#unless flag }}no{{/unless}}

Context

{
    "flag": null
}

Output

no

unless-missing-key-treated-as-falsy

A missing key resolves to null and is treated as falsy: the body renders.

Template

{{#unless absent }}no{{else}}yes{{/unless}}

Context

{
    "flag": true
}

Output

no

unless-nested-inside-each

Sanity: {{#unless}} inside {{#each}} suppresses output for truthy items.

Template

{{#each items }}{{#unless skip }}[{{ this/name }}]{{/unless}}{{/each}}

Context

{
    "items": [
        {
            "name": "a",
            "skip": false
        },
        {
            "name": "b",
            "skip": true
        },
        {
            "name": "c",
            "skip": false
        }
    ]
}

Output

[a][c]

unless-non-empty-array-renders-else

Non-empty JsonArray is truthy: {{#unless}} renders its else arm.

Template

{{#unless items }}empty{{else}}present{{/unless}}

Context

{
    "items": [
        1
    ]
}

Output

present

unless-truthy-no-else-emits-nothing

Identifier resolves to true and there is no else arm: emits nothing.

Template

[{{#unless flag }}no{{/unless}}]

Context

{
    "flag": true
}

Output

[]

unless-truthy-with-else-renders-else

Identifier resolves to true and an else arm is present: the else arm renders.

Template

{{#unless flag }}no{{else}}yes{{/unless}}

Context

{
    "flag": true
}

Output

yes

unless-zero-renders-body

The number 0 is falsy: {{#unless}} renders its body.

Template

{{#unless n }}zero{{/unless}}

Context

{
    "n": 0
}

Output

zero

Source fixture: render/unless-block.json