cheatsheet
Version:
Cheatsheet boilerplate. Created for the new lesscss.org website, based on Shopify Cheat Sheet by Mark Dunkley.
124 lines • 4.43 kB
JSON
{
"ATTENTION": "Do not edit this file; changes belong in the appropriate YAML file.",
"overview": "Set Delimiter tags are used to change the tag delimiters for all content\nfollowing the tag in the current compilation unit.\n\nThe tag's content MUST be any two non-whitespace sequences (separated by\nwhitespace) EXCEPT an equals sign ('=') followed by the current closing\ndelimiter.\n\nSet Delimiter tags SHOULD be treated as standalone when appropriate.\n",
"tests": [
{
"name": "Pair Behavior",
"data": {
"text": "Hey!"
},
"expected": "(Hey!)",
"template": "{{=<% %>=}}(<%text%>)",
"desc": "The equals sign (used on both sides) should permit delimiter changes."
},
{
"name": "Special Characters",
"data": {
"text": "It worked!"
},
"expected": "(It worked!)",
"template": "({{=[ ]=}}[text])",
"desc": "Characters with special meaning regexen should be valid delimiters."
},
{
"name": "Sections",
"data": {
"section": true,
"data": "I got interpolated."
},
"expected": "[\n I got interpolated.\n |data|\n\n {{data}}\n I got interpolated.\n]\n",
"template": "[\n{{#section}}\n {{data}}\n |data|\n{{/section}}\n\n{{= | | =}}\n|#section|\n {{data}}\n |data|\n|/section|\n]\n",
"desc": "Delimiters set outside sections should persist."
},
{
"name": "Inverted Sections",
"data": {
"section": false,
"data": "I got interpolated."
},
"expected": "[\n I got interpolated.\n |data|\n\n {{data}}\n I got interpolated.\n]\n",
"template": "[\n{{^section}}\n {{data}}\n |data|\n{{/section}}\n\n{{= | | =}}\n|^section|\n {{data}}\n |data|\n|/section|\n]\n",
"desc": "Delimiters set outside inverted sections should persist."
},
{
"name": "Partial Inheritence",
"data": {
"value": "yes"
},
"expected": "[ .yes. ]\n[ .yes. ]\n",
"template": "[ {{>include}} ]\n{{= | | =}}\n[ |>include| ]\n",
"desc": "Delimiters set in a parent template should not affect a partial.",
"partials": {
"include": ".{{value}}."
}
},
{
"name": "Post-Partial Behavior",
"data": {
"value": "yes"
},
"expected": "[ .yes. .yes. ]\n[ .yes. .|value|. ]\n",
"template": "[ {{>include}} ]\n[ .{{value}}. .|value|. ]\n",
"desc": "Delimiters set in a partial should not affect the parent template.",
"partials": {
"include": ".{{value}}. {{= | | =}} .|value|."
}
},
{
"name": "Surrounding Whitespace",
"data": {},
"expected": "| |",
"template": "| {{=@ @=}} |",
"desc": "Surrounding whitespace should be left untouched."
},
{
"name": "Outlying Whitespace (Inline)",
"data": {},
"expected": " | \n",
"template": " | {{=@ @=}}\n",
"desc": "Whitespace should be left untouched."
},
{
"name": "Standalone Tag",
"data": {},
"expected": "Begin.\nEnd.\n",
"template": "Begin.\n{{=@ @=}}\nEnd.\n",
"desc": "Standalone lines should be removed from the template."
},
{
"name": "Indented Standalone Tag",
"data": {},
"expected": "Begin.\nEnd.\n",
"template": "Begin.\n {{=@ @=}}\nEnd.\n",
"desc": "Indented standalone lines should be removed from the template."
},
{
"name": "Standalone Line Endings",
"data": {},
"expected": "|\r\n|",
"template": "|\r\n{{= @ @ =}}\r\n|",
"desc": "\"\\r\\n\" should be considered a newline for standalone tags."
},
{
"name": "Standalone Without Previous Line",
"data": {},
"expected": "=",
"template": " {{=@ @=}}\n=",
"desc": "Standalone tags should not require a newline to precede them."
},
{
"name": "Standalone Without Newline",
"data": {},
"expected": "=\n",
"template": "=\n {{=@ @=}}",
"desc": "Standalone tags should not require a newline to follow them."
},
{
"name": "Pair with Padding",
"data": {},
"expected": "||",
"template": "|{{= @ @ =}}|",
"desc": "Superfluous in-tag whitespace should be ignored."
}
]
}