overview: | Parent tags are used to expand an external template into the current template, with optional parameters delimited by block tags. These tags' content MUST be a non-whitespace character sequence NOT containing the current closing delimiter; each Parent tag MUST be followed by an End Section tag with the same content within the matching parent tag. Block tags are used inside of parent tags to assign data onto the context stack prior to rendering the parent template. Outside of parent tags, block tags are used to indicate where value set in the parent tag should be placed. If no value is set then the content in between the block tags, if any, is rendered. tests: - name: Default desc: Default content should be rendered if the block isn't overridden data: { } template: | {{$title}}Default title{{/title}} expected: | Default title - name: Variable desc: Default content renders variables data: { bar: 'baz' } template: | {{$foo}}default {{bar}} content{{/foo}} expected: | default baz content - name: Triple Mustache desc: Default content renders triple mustache variables data: { bar: '' } template: | {{$foo}}default {{{bar}}} content{{/foo}} expected: | default content - name: Sections desc: Default content renders sections data: { bar: {baz: 'qux'} } template: | {{$foo}}default {{#bar}}{{baz}}{{/bar}} content{{/foo}} expected: | default qux content - name: Negative Sections desc: Default content renders negative sections data: { baz: 'three' } template: | {{$foo}}default {{^bar}}{{baz}}{{/bar}} content{{/foo}} expected: | default three content - name: Mustache Injection desc: Mustache injection in default content data: {bar: {baz: '{{qux}}'} } template: | {{$foo}}default {{#bar}}{{baz}}{{/bar}} content{{/foo}} expected: | default {{qux}} content - name: Inherit desc: Default content rendered inside included templates data: { } template: | {{include}}|{{