Hi all, regarding issue #2594 "Template system should handle whitespace better" explaining the need for some kind of (optional) whitespace stripping from the output of templates, I've been looking at the proposed solutions and compared them to other template and macro engines.
In particular, a historical but still widely used and general-purpose macro engine is m4. Its own feature for controlled newline stripping is the "dnl" reserved word, "Discard to Next Line." It works by "chomping" all input until and including the next newline. For example, to call a macro foo() without copying over the newline that appears after the macro call in the template, a m4 programmer would write: foo('bar`, `whatever')dnl An equivalent feature in Django templates would enable template developers to strip newlines from specific lines, while keeping backwards compatibility with existing templates. So if the general idea is well-accepted, I propose the "{#" token. The example from the issue would become: <ul> {% for item in items %}{# <li>{{ item }}</li> {% endfor %}{# </ul> It is already a reserved token in the template system, so it's not going to break anything. The existing comment syntax {# ... #} is already restricted to single-line comments, so there are no multi-line comments that would break. Plus, I'd wager it could be implemented quite efficiently. What do you think? Tobia -- You received this message because you are subscribed to the Google Groups "Django developers" group. To post to this group, send email to django-developers@googlegroups.com. To unsubscribe from this group, send email to django-developers+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/django-developers?hl=en.