Add/rework the options for {% attr %} and {% definevar %}.

Review Request #9055 — Created July 5, 2017 and submitted — Latest diff uploaded

Information

Djblets
release-0.10.x
5e73690...

Reviewers

My recent change added some control over stripping to {% definevar %}
and made stripping mandatory for {% attr %}. This change builds upon
that by refining the behavior and adding more options.

{% attr %} now condenses the whitespace within the value by default
(turning sequences of spaces, tabs, and newlines into a single space).
All the new behavior can be turned off with the "nocondense" option.

It also now marks the value as unsafe, instead of making that the
caller's responsibility.

{% definevar %} now has a strip option for stripping
leading/trailing whitespace (replacing the new stripped), a
spaceless option for making the text spaceless (equivalent to wrapping
the value within as {% spaceless %}), and an unsafe option for
marking the value as unsafe.

Along with this (and to support these options), @blocktag now works with
template tags taking *args. When found, the check for the maximum number
of arguments will be turned off.

Unit tests passed.