[jifty-devel] Template::Declare now (partiallly) supports XUL and
custom XML dialects
Agent Zhang
agentzh at gmail.com
Thu Aug 9 03:40:47 EDT 2007
Hi, all,
I've refactored Template::Declare::Tags and introduced the long
over-due TagSet feature to TD.
HTML tag list and other related info have been moved to HTML::TagSet,
and XUL::TagSet is also added. We can now control which tag set to use
by the following lines of code:
package MyApp::Templates;
use Template::Declare::Tags qw/ XUL::TagSet /;
use base 'Template::Declare';
template foo => sub {
window { attr { ... } groupbox { .... } }
};
And it's also possible to specify multiple tag sets:
use Template::Declare::Tags qw/ XUL::TagSet HTML::TagSet /;
(This example is not very realistic BTW.)
By default, Template::Declare::Tags uses HTML::TagSet so that existing
code won't break.
The user can define their own tag set classes as long as these classes
subclass Template::Declare::TagSet and implement the corresponding
methods (i.e. get_tag_list, get_alternate_spelling, and
can_combine_empty_tags).
See the POD in these classes for more info :)
Now I'm considering adding the XML namespace support to TD. I'm
proposing the following design:
package html;
use Template::Declare::Tags 'HTML::Tags' => { tag_prefix => 'html:' };
package MyXulApp::Templates;
use Template::Declare::Tags 'XUL::Tags';
template foo => sub {
groupbox {
html::p { 'hello, XML!' }
html::table {}
}
};
And show('foo') will give:
<groupbox>
<html:p>hello, XML!</html:p>
<html:table></html:table>
</groupbox>
Thoughts? Comments?
Thanks,
agentz
More information about the jifty-devel
mailing list