On Jul 4, 2009, at 4:36 PM, Yarko Tymciurak wrote:

> this seems obtuse...
>
> If arguments aren't used in this form of "helpers" then why not just  
> use the html?  (why do you need a helper?)
>
> I may be missing something.

The arguments are used (though not all of them, if close=True).

I'll defer discussing the entire rationale until (Real Soon Now) I'll  
describe a mechanism for handling better generation of valid html/ 
xhtml. This stuff relates, at least peripherally.

>
> As for the parameters, if indeed this is of use, why not something  
> like
> BODY()  ... as is now
> BODY.open(args to your heart's content)
> BODY.close()
>
> This is (at least) more readable and explicit in the code, and -  
> heck - the helpers are all classes...
>
> You can extend them now.

That's a good idea, I think. I'm a relative Python novice, so it  
wasn't obvious to me how to do that efficiently, but I think I've got  
a handle on it: making open & close class methods of DIV looks to me  
like it would do the trick.


>
>  - Yarko
>
> On Sat, Jul 4, 2009 at 5:58 PM, Jonathan Lundell  
> <jlund...@pobox.com> wrote:
>
> I propose to add a "close" argument to the html helpers (gluon/ 
> html.py).
>
> 1. If there's no close argument, then the behavior is identical the
> current code.
>
> 2. It's an error to specify close= for a self-closing tag (like <br /
>  >), or to give it a value other than True or False.
>
> 3. close=False suppresses the closing tag. The opening tag, attributes
> and components (if any) are output normally.
>
> 4. close=True suppresses the opening tag and attributes. The
> components (if any) and closing tag are output normally.
>
> The general idea is to make it easier to use helpers when output is
> being generated sequentially (as in welcome/views/layout.html, for
> example).
>
> While I assert that this change is generally useful, it will also
> support a proposal I intend to make aimed at making it easier to
> generate valid xhtml (or html) code (without breaking legacy
> applications).
>
> Usage, in the simplest case, would be something like this:
>
>        {{=BODY(close=False)}}
>        ...
>        body content goes here
>        ...
>        {{=BODY(close=True}}
>
> This is meant to be an enabling feature only, with no enforcement
> other than syntax. In particular, there would be no attempt to
> prohibit a close without an open, or the like.
>
> I don't expect that component args will typically be used in this mode
> of operation, but I see no reason to prohibit them.
>
> In the future, my plan is that HTML() would be smarter about
> generating its DOCTYPE, and I want to encourage that use, which is
> currently impractical (I think), since you either have to be prepared
> with all the components, or else create and then edit (extensively)
> the HTML object.
>
> Discussion is welcome. I'd prefer a syntax along the lines of
> BODY(open) and BODY(close), but I don't see a straightforward way of
> doing it.
>
> If there's no objection, I'll create a patch.
>
>
>
>
> >



--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"web2py Web Framework" group.
To post to this group, send email to web2py@googlegroups.com
To unsubscribe from this group, send email to 
web2py+unsubscr...@googlegroups.com
For more options, visit this group at 
http://groups.google.com/group/web2py?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to