Paul Seamons wrote:
I propose allowing the passing of the keyword "unquoted" to the TAGS
directive.

I propose adding native /regular expression/ quoting syntax to TT3.
That would allow you to do this:

  [% TAGS /[<({]%/ /%[})>]/ %]     # regexen

For the TAGS directive, we would also need to support explicit 'string
quoting' in case a literal (non-regex) pattern starts with a /

  [% TAGS '/*' '*/' %]             # explicit quoting

As well as supporting the current unquoted style:

  [% TAGS [* *] %]                 # unquoted - same as TT2

Building regex quoting into the core language should also make passing
regexen to methods (like text.match) a little more intuitive when it
comes to escaping characters.  At present, regexen must be string 'quoted'
and that can get confusing when you have to escape certain characters.
Within /regex/ quotes, the normal escaping rules for regexen apply.

e.g.
  [% text.match(/<a href=["'].*["']>/)  %]     # TT3
  [% text.match('<a href=["\'].*["\']>') %]    # TT2

It also gives us a natural place to put flags rather than
having to embed them in the pattern...

  [% text.match(/foo/i) %]                     # TT3
  [% text.match('(?i)foo') %]                  # TT2

...or requiring additional parameters like the 'global' flag in match()

  [% text.match(/foo/g) %]                     # TT3
  [% text.match('foo', 1) %]                   # TT2

(I'm not quite sure how that last example is going to work yet, so consider
it "just an idea" at this stage)

Once again, it's something that's too hard/painful/costly to do
with the table-drive parser in TT2, but is relatively easy in TT3.

Cheers
A


_______________________________________________
templates mailing list
[email protected]
http://lists.template-toolkit.org/mailman/listinfo/templates

Reply via email to