This is only really supported on the `{% from %}` block currently,
but the ability exists to use this elsewhere if someone is looking
for the ability to alias variable identifiers. This also allows
value-only parameters to be comma-separated within the block
parameters, since before that was only allows for key-value parameters.
\r
block_parameters\r
=\r
- @+:block_parameter { {SP}* @+:block_parameter }*\r
+ @+:block_parameter\r
+ [ {SP}* "," ]\r
+ {\r
+ {SP}*\r
+ @+:block_parameter\r
+ [ {SP}* "," ]\r
+ }*\r
;\r
\r
block_parameter\r
block_parameter_key_value\r
=\r
key:block_parameter_key {SP}* "=" {SP}* value:variable_accessor_call_parameter_value\r
- [ {SP}* "," ]\r
;\r
\r
block_parameter_key\r
block_parameter_value_only\r
=\r
| value:implicit_identifier_tuple\r
+ | value:variable_identifier_with_alias\r
| value:variable_accessor_call_parameter_value\r
;\r
\r
{ {SP}* filters+:variable_filter }*\r
;\r
\r
+variable_identifier_with_alias\r
+ =\r
+ variable:IDENTIFIER\r
+ {SP}* "as" {SP}*\r
+ alias:IDENTIFIER\r
+ ;\r
+\r
variable_accessor\r
=\r
| variable_accessor_brackets\r
with_context = False\r
\r
if len(parameters) > 2:\r
- names = []#parameters[2:]\r
+ for parameter in parameters[2:]:\r
+ if 'alias' in parameter['value']:\r
+ names.append(\r
+ (\r
+ parameter['value']['variable'],\r
+ parameter['value']['alias']\r
+ )\r
+ )\r
+ else:\r
+ names.append(parameter['value']['variable'])\r
\r
from_import = nodes.FromImport(\r
template,\r