hmm, this seem to follow what we've now done for form.custom On Sun, Jul 5, 2009 at 7:44 PM, Jonathan Lundell<[email protected]> wrote: > > 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 -~----------~----~----~----~------~----~------~--~---

