In the spirit of supplying concrete examples, here are my proposed 
changes to the syntax of the existing language:

* the existing {{{parm}}} or {{{parm|default}}} notation should be 
changed to ${parm} or ${parm|default}

* all newlines and other multiple whitespace characters within template 
source code should be regarded as reduced to single spaces, with 
explicit calls to {{newline}} and {{whitespace}} operators to generate 
explicit whitespace on output

These two changes alone would greatly increase the readability of 
templates, both by massively reducing the number of curly brackets 
within templates, and by allowing them to be formatted in a clearly 
nested and indented form.

If I could add one more change, it would be an {{apply}} function, to 
allow explicit calls to other templates whose names have themselves been 
generated by template substitution, as used extensively in templates 
such as {{coord}}; this would help clean up the semantics of the 
underlying language a bit more, allowing further changes to be made more 
easily both to the syntax and implementation, and also possibly allowing 
a faster implementation that does not require SNOBOL-like re-parsing of 
generated text.

-- Neil



_______________________________________________
Wikitech-l mailing list
Wikitech-l@lists.wikimedia.org
https://lists.wikimedia.org/mailman/listinfo/wikitech-l

Reply via email to