On Jul 4, 2009, at 11:34 PM, mdipierro wrote:

>
> I do not see why anybody would use helpers this way. the purpose of
> helpers is not producting HTML code but provide a serverside
> representation of the DOM. Breaking a <tag></tag> into two separate
> object just breaks the mechanism.

I'd like to try to persuade you that the helpers serve another  
purpose: abstracting html code generation.

The helpers are already used piecemeal in existing applications to  
generate fragments of html without creating the entire DOM. The adding  
an open/close option does nothing to impair DOM representation, but it  
gives us an abstraction layer that will be useful for generating valid  
xhtml/html code down the road.

Let me make the larger proposal, and it'll be clearer where the open/ 
close detail fits in.


>
> Massimo
>
>
> On Jul 5, 12:38 am, Jonathan Lundell <[email protected]> wrote:
>> 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
>>> <[email protected]> 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 [email protected]
To unsubscribe from this group, send email to 
[email protected]
For more options, visit this group at 
http://groups.google.com/group/web2py?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to