Thread: [htmltmpl] H::T::Expr and escape
Brought to you by:
samtregar
From: Michael P. <mp...@pl...> - 2006-04-13 23:52:44
|
Is it possible to combine the 'escape' attribute of H::T with H::T::Expr? I'm guessing not since any combination I've tried fails. If it's too hard to do, maybe a new function could be added so that you can do somthing like <tmpl_var expr="escape(uc(title), 'HTML')"> -- Michael Peters Developer Plus Three, LP |
From: Sam T. <sa...@tr...> - 2006-04-14 00:14:30
|
On Thu, 13 Apr 2006, Michael Peters wrote: > Is it possible to combine the 'escape' attribute of H::T with > H::T::Expr? No, I don't think so. I don't think it would be too hard to add support for it though. HTML::Template supports combining escape and code-ref params, so it'd just be a matter of making the HTML::Template::Expr parser smart enough to pass it through. -sam |
From: Michael P. <mp...@pl...> - 2006-04-14 17:19:26
|
Sam Tregar wrote: > On Thu, 13 Apr 2006, Michael Peters wrote: > >> Is it possible to combine the 'escape' attribute of H::T with >> H::T::Expr? > > No, I don't think so. I don't think it would be too hard to add > support for it though. HTML::Template supports combining escape and > code-ref params, so it'd just be a matter of making the > HTML::Template::Expr parser smart enough to pass it through. It looks like it also doesn't support 'default'. So by making the "parser smart enough" do you mean copying that huge regex from H::T and modifying it with the expr regex? A very simple approach would be to take any tmpl_vars/loops, etc that use expr and capture anything before the expr="..." and after it and then just add them to the generated tags. This however doesn't solve the sub-ref problem. -- Michael Peters Developer Plus Three, LP |
From: Sam T. <sa...@tr...> - 2006-04-14 17:22:22
|
On Fri, 14 Apr 2006, Michael Peters wrote: > So by making the "parser smart enough" do you mean copying that huge > regex from H::T and modifying it with the expr regex? Yeah, or using Parse::RecDescent. H::T::E already uses it for expressions, so using it for parsing the template itself might not be much slower. > It looks like it also doesn't support 'default'. What the heck would default do for expressions? I can't think of anything reasonable... There's no single variable to examine for a value in the general case. > A very simple approach would be to take any tmpl_vars/loops, etc that > use expr and capture anything before the expr="..." and after it and > then just add them to the generated tags. This however doesn't solve the > sub-ref problem. What's the sub-ref problem? -sam |
From: Michael P. <mp...@pl...> - 2006-04-14 17:31:43
|
Sam Tregar wrote: > On Fri, 14 Apr 2006, Michael Peters wrote: > >> So by making the "parser smart enough" do you mean copying that huge >> regex from H::T and modifying it with the expr regex? > > Yeah, or using Parse::RecDescent. H::T::E already uses it for > expressions, so using it for parsing the template itself might not be > much slower. I'll try my simple approach and see how that works first. >> It looks like it also doesn't support 'default'. > > What the heck would default do for expressions? I can't think of > anything reasonable... There's no single variable to examine for a > value in the general case. Yeah, that makes sense, I guess I didn't really think it through. Would it make sense though to allow it to be used if the entire expression returned false? >> A very simple approach would be to take any tmpl_vars/loops, etc that >> use expr and capture anything before the expr="..." and after it and >> then just add them to the generated tags. This however doesn't solve the >> sub-ref problem. > > What's the sub-ref problem? I'm not sure :) I think I just mis-read your other email. -- Michael Peters Developer Plus Three, LP |
From: Sam T. <sa...@tr...> - 2006-04-14 17:52:48
|
On Fri, 14 Apr 2006, Michael Peters wrote: > Yeah, that makes sense, I guess I didn't really think it through. Would > it make sense though to allow it to be used if the entire expression > returned false? No, I don't. Default for normal variables is only used when a value isn't set, false or undefined both count. I suppose I could be persuaded though if a good use-case was presented. -sam |
From: Michael P. <mp...@pl...> - 2006-04-14 18:21:54
|
Michael Peters wrote: > > Sam Tregar wrote: >> On Fri, 14 Apr 2006, Michael Peters wrote: >> >>> So by making the "parser smart enough" do you mean copying that huge >>> regex from H::T and modifying it with the expr regex? >> Yeah, or using Parse::RecDescent. H::T::E already uses it for >> expressions, so using it for parsing the template itself might not be >> much slower. > > I'll try my simple approach and see how that works first. This is a very simple (naive?) approach, so I may have missed something, but it seems to work. -- Michael Peters Developer Plus Three, LP |
From: Sam T. <sa...@tr...> - 2006-04-18 17:56:55
|
On Fri, 14 Apr 2006, Michael Peters wrote: >> I'll try my simple approach and see how that works first. > > This is a very simple (naive?) approach, so I may have missed something, > but it seems to work. Thanks, applied! -sam |