diff options
author | ipknHama <ipknhama@gmail.com> | 2014-07-31 00:50:38 +0900 |
---|---|---|
committer | ipknHama <ipknhama@gmail.com> | 2014-08-02 22:32:48 +0900 |
commit | 2e8f9f383d3ebc78fb2cb8ad37ad855ac28d11dd (patch) | |
tree | 43a9aa78cde60fe55fde5735f40dae7c34405df8 /template_test/partials.yml | |
parent | e68f5db64fc2e2f54184d3eef446520a2c2379f9 (diff) | |
download | crow-2e8f9f383d3ebc78fb2cb8ad37ad855ac28d11dd.tar.gz crow-2e8f9f383d3ebc78fb2cb8ad37ad855ac28d11dd.zip |
begin implementation: mustache based template engine
Diffstat (limited to 'template_test/partials.yml')
-rw-r--r-- | template_test/partials.yml | 109 |
1 files changed, 109 insertions, 0 deletions
diff --git a/template_test/partials.yml b/template_test/partials.yml new file mode 100644 index 0000000..8c41543 --- /dev/null +++ b/template_test/partials.yml @@ -0,0 +1,109 @@ +overview: | + Partial tags are used to expand an external template into the current + template. + + The tag's content MUST be a non-whitespace character sequence NOT containing + the current closing delimiter. + + This tag's content names the partial to inject. Set Delimiter tags MUST NOT + affect the parsing of a partial. The partial MUST be rendered against the + context stack local to the tag. If the named partial cannot be found, the + empty string SHOULD be used instead, as in interpolations. + + Partial tags SHOULD be treated as standalone when appropriate. If this tag + is used standalone, any whitespace preceding the tag should treated as + indentation, and prepended to each line of the partial before rendering. +tests: + - name: Basic Behavior + desc: The greater-than operator should expand to the named partial. + data: { } + template: '"{{>text}}"' + partials: { text: 'from partial' } + expected: '"from partial"' + + - name: Failed Lookup + desc: The empty string should be used when the named partial is not found. + data: { } + template: '"{{>text}}"' + partials: { } + expected: '""' + + - name: Context + desc: The greater-than operator should operate within the current context. + data: { text: 'content' } + template: '"{{>partial}}"' + partials: { partial: '*{{text}}*' } + expected: '"*content*"' + + - name: Recursion + desc: The greater-than operator should properly recurse. + data: { content: "X", nodes: [ { content: "Y", nodes: [] } ] } + template: '{{>node}}' + partials: { node: '{{content}}<{{#nodes}}{{>node}}{{/nodes}}>' } + expected: 'X<Y<>>' + + # Whitespace Sensitivity + + - name: Surrounding Whitespace + desc: The greater-than operator should not alter surrounding whitespace. + data: { } + template: '| {{>partial}} |' + partials: { partial: "\t|\t" } + expected: "| \t|\t |" + + - name: Inline Indentation + desc: Whitespace should be left untouched. + data: { data: '|' } + template: " {{data}} {{> partial}}\n" + partials: { partial: ">\n>" } + expected: " | >\n>\n" + + - name: Standalone Line Endings + desc: '"\r\n" should be considered a newline for standalone tags.' + data: { } + template: "|\r\n{{>partial}}\r\n|" + partials: { partial: ">" } + expected: "|\r\n>|" + + - name: Standalone Without Previous Line + desc: Standalone tags should not require a newline to precede them. + data: { } + template: " {{>partial}}\n>" + partials: { partial: ">\n>"} + expected: " >\n >>" + + - name: Standalone Without Newline + desc: Standalone tags should not require a newline to follow them. + data: { } + template: ">\n {{>partial}}" + partials: { partial: ">\n>" } + expected: ">\n >\n >" + + - name: Standalone Indentation + desc: Each line of the partial should be indented before rendering. + data: { content: "<\n->" } + template: | + \ + {{>partial}} + / + partials: + partial: | + | + {{{content}}} + | + expected: | + \ + | + < + -> + | + / + + # Whitespace Insensitivity + + - name: Padding Whitespace + desc: Superfluous in-tag whitespace should be ignored. + data: { boolean: true } + template: "|{{> partial }}|" + partials: { partial: "[]" } + expected: '|[]|' |