Make it simple to add new parser patterns
-----------------------------------------
Key: TAPESTRY-2016
URL: https://issues.apache.org/jira/browse/TAPESTRY-2016
Project: Tapestry
Issue Type: Wish
Affects Versions: 5.0.8
Reporter: Kevin Menard
I realize that this is a wish item, but I think it could add a lot of power to
Tapestry. Right now, expansions are awesome to use, but at the same time
they're still quite limited. Being able to contribute new expansion patterns
could lead to some really interesting results.
At the simplest level, I could just use something other than ${blah}. For
example, my first T5 app was basically a port from a Django app. Django uses
{{blah}} for its form of expansions. If I could have contributed that as a
pattern the migration would have gone a lot easier.
Things could get increasingly more sophisticated, however. Looking at Django
again, they have something called "filters" that seem quite similar to T5's
mixins. What's interesting is that filters can be chained together in an
expansion. As an example:
{{ object.date|date:"F j, Y" }}
That takes a date from some object and pipes it through the date filter, which
is configured with the text following the colon.
You could string these arbitrarily long. Maybe you have one filter to make
clickable URLs out of any URLs in a given text section and then pipe it into
another that truncates the total amount of text.
I could see value in adding yet another expansion for outputting raw values
rather than using a component in the template to do so.
Anyway, lots of things I'd like to see enhanced with the template processor in
general. I think the path of least resistance would be to make it possible for
someone to easily make a contribution and if something becomes popular enough,
look at adding it to Tapestry proper.
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]