Commit 4dd434e0 authored by Jonathan Yu's avatar Jonathan Yu

[svn-upgrade] Integrating new upstream version, libtemplate-declare-perl (0.41)

parent ec6d952e
0.41 2009-10-29
* Documentation tweaks (Theory)
0.40_02 2009-10-23
* David (Theory) Wheeler spent considerable effort on cleaning up
Template-Declare for this release.
* Reworked all the documentation, neatening things, expanding the "USAGE"
section, fixing bugs in the examples, and adding missing docs for various
functions and methods.
* Added "dispatch_to" to replace "roots", which is now deprecated. Note that
"dispatch_to" resolves to template classes in the opposite order to "roots".
This won't be an issue if you only use a single temlate class.
* Converted the implementation of "alias" to be the same as that used for
"import_templates", which is much more efficient.
* Added the "into" parameter to "alias" and "import_templates".
* Added the "setting" syntactical sugar keyword for use with "alias".
* Renamed "import_templates" to "mix". The former is still around, but is
deprecated.
* Added support for package variables with "mix".
* Deprecated the undocumented "aliases()" and "alias_metadata()" methods, as
they are no longer needed. They're now no-ops that issue warnings. To be
removed altogether in a future version.
0.40_01 2009-08-12
* Support for inline tagset definitions. Thanks to Olivier 'dolmen' Mengué
[rt.cpan.org #48642]
0.40 - 2009-07-08
* Fix subname issue with the debugger and specifically Devel::NYTProf
* String::BufferStack usage improvements
......
......@@ -32,14 +32,20 @@ t/arg-declaration-styles.t
t/arg-passing.t
t/attributes.t
t/closures.t
t/composition.t
t/deep_aliasing.t
t/deep_importing.t
t/deep_mixing.t
t/dispatch_order.t
t/duplicate_element_ids.t
t/forms.t
t/import-regression.t
t/importing.t
t/indent.t
t/indexhtml.t
t/inline-tagset.t
t/instrumentation.t
t/mixing.t
t/MyTagSet.pm
t/namespace.t
t/nested_show.t
......@@ -48,6 +54,7 @@ t/pitfalls.t
t/postprocessor.t
t/private.t
t/relative-aliasing.t
t/relative-mixing.t
t/relative-pathing.t
t/rt-37622.t
t/self.t
......
......@@ -43,3 +43,4 @@ benchmarks/.*
\.svn
\.git
\.t_$
pod-spelling.t$
......@@ -364,5 +364,5 @@ AUTHOR
Jesse Vincent <jesse@bestpractical.com>
COPYRIGHT
Copyright 2006-2007 Best Practical Solutions, LLC
Copyright 2006-2009 Best Practical Solutions, LLC
......@@ -14,12 +14,12 @@ not run its Makefile.PL or Build.PL.
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
SHA1 2a7ecafdfee2c1d9823f284abb1cace9b6443ad5 Changes
SHA1 5afe8e5f287785ce0b2e7dd86297188436e247fb MANIFEST
SHA1 04ed470d2969b691120bbc2df1dfe1fe351dd4ed MANIFEST.SKIP
SHA1 b0a4d3b5bacd1c1ae7022f77379f704c42f04f86 Changes
SHA1 1bab0077b133b2d3cdd4d66ef63dafa3ef4adf67 MANIFEST
SHA1 6c79a8c5140fc8b0146fbc8f77acc613797eeb6f MANIFEST.SKIP
SHA1 ab968279525d26d23e4bf76e3d15e4951f87996f META.yml
SHA1 ee899bc436e17646223925d431d3e9727c1254d1 Makefile.PL
SHA1 65da83220e6bf55fec475fe014f90ad37a9f4969 README
SHA1 1af5061c03daaf9d18c76108b6fb7cea29b315ed README
SHA1 603bb9de29fb8cba7f13409c546750972eff645d inc/Module/AutoInstall.pm
SHA1 ae018c4565c1277089ca8f1b28f888d95430cb7f inc/Module/Install.pm
SHA1 0a6f29536bedea3bb94744a7d43ffe39da7e4819 inc/Module/Install/AutoInstall.pm
......@@ -31,61 +31,68 @@ SHA1 9f6beaa2f4749ceb5dd0c9b0c647d0f3289c7b46 inc/Module/Install/Makefile.pm
SHA1 bd988ba3fb7eee0ad889eadc2f5338a8d98fc2a3 inc/Module/Install/Metadata.pm
SHA1 e9aa83f3e8b16ccfce544a90a57b63b70a497759 inc/Module/Install/Win32.pm
SHA1 ade2ac0b0246d4d8e28fa46942e53f6925abda46 inc/Module/Install/WriteAll.pm
SHA1 eea7a0ba18931fba4545a22cfbba0bc71e633abb lib/Template/Declare.pm
SHA1 a44d64624dd8d0ce708a0d056a8945783fd9cd53 lib/Template/Declare/Buffer.pm
SHA1 5b8295d842ccea0a21661583446344733f668879 lib/Template/Declare/TagSet.pm
SHA1 a3dd8253f179c0e07ea80db89c40a2755eade801 lib/Template/Declare/TagSet/HTML.pm
SHA1 f95b68b4c50afcd1c66d225556dcfa2b2f18e619 lib/Template/Declare/TagSet/RDF.pm
SHA1 4899124cdf56c12fcc7ac1a2b3d99910ed5b8bbb lib/Template/Declare/TagSet/RDF/EM.pm
SHA1 460ab0856c8aea75c81e8cb1e5fb287515b1b2bf lib/Template/Declare/TagSet/XUL.pm
SHA1 b21b17b9bedf476cd17a2528720fd5f771ebfadd lib/Template/Declare/Tags.pm
SHA1 7b2832c140109b23ba669db59e5b357dd1d255ec t/99-pod-coverage.t
SHA1 01bc4e1b5e6731544a07ddebbefb995f0c7ace20 lib/Template/Declare.pm
SHA1 4202a05659532bea1d800bc7296d9c1312624f9b lib/Template/Declare/Buffer.pm
SHA1 2794aeecd4d243899d80881376502e5444664e55 lib/Template/Declare/TagSet.pm
SHA1 bd39d582e69e0725124a0ffcee10c5d12a2377b3 lib/Template/Declare/TagSet/HTML.pm
SHA1 c1703c1f999d27878117e0aaf59dcae1d9d98645 lib/Template/Declare/TagSet/RDF.pm
SHA1 8ba58a5c640010febb799bb03b7857eda34c86bc lib/Template/Declare/TagSet/RDF/EM.pm
SHA1 2941a453d2627e0c0c02b8f50e7600c648867831 lib/Template/Declare/TagSet/XUL.pm
SHA1 c64560b8308421deffdc124d87d2f27f2c0b35d9 lib/Template/Declare/Tags.pm
SHA1 238e8999db8b1a8221dcac8afbf0c60448670974 t/99-pod-coverage.t
SHA1 bb0da54f2b3f2d7955baa41ee458cb3d1887f475 t/99-pod.t
SHA1 8de6d59c7ed7c771f9cdc5e2dbaef0c31c7ab439 t/MyTagSet.pm
SHA1 deb55b4ed7eec5eb29479f047ca9759c76a8b803 t/aliasing.t
SHA1 9554ad5bd0cd51af54c59b2ac157c33b78ea4158 t/alternative.t
SHA1 d1f4df2c09918ac0b104c4bab005910d896c2708 t/arg-declaration-styles.t
SHA1 6a5041bf29232efc4469bc29e32c0ed8ad3b5060 t/arg-passing.t
SHA1 f4924dcec2850125f5eeda4a40525ae3b4d46c76 t/attributes.t
SHA1 ced0409f2bcdf847d521e8664bd045442f51df49 t/closures.t
SHA1 0272bf3a45a9e97eb68399502cbef602eddd1efe t/deep_aliasing.t
SHA1 5dcb568191fcefc1156cfe6e06b0b3e90c3046e4 t/deep_importing.t
SHA1 94c78c32ac1e16780ff2dd09c6f3b734035f83ac t/duplicate_element_ids.t
SHA1 85e2465214c89783cdc2f02e5555ab1c7cc78ae4 t/forms.t
SHA1 c06058b5de4bed61e600e91a475e021e8999da6f t/importing.t
SHA1 27634193f9d55414390a02a8c502e57cdf4c6062 t/indent.t
SHA1 bcc7853609975acb08bb40e65901a63268e378ca t/indexhtml.t
SHA1 be30fd012d21eb1a667f0f538185d8685b2960dc t/instrumentation.t
SHA1 5d8b50381640bef07f473caf7e179fb84c4dd698 t/namespace.t
SHA1 d554f7a04d0b3d18e9ecd661f90030f14bd84ade t/nested_show.t
SHA1 cd8bf27d877bc26640f99947821c9d874aa8239b t/overloaded.t
SHA1 6af119980cb391b086c0f66d4037ca59b06b2363 t/pitfalls.t
SHA1 fb01850a459d3d340bdf688271d14fc55db321e3 t/postprocessor.t
SHA1 6918ecf012a81e66852543d87f93aac95fa05dd9 t/private.t
SHA1 a580daf468f50f09a7828ac57f9d738e6f1f4558 t/relative-aliasing.t
SHA1 179841125b5c89ad35063d9a1da823b8c2dbe3a1 t/relative-pathing.t
SHA1 7a95f27648a60084863ca8db7140f2b601794267 t/rt-37622.t
SHA1 de23aec78ebc456083d8df85cf11d520bb03544f t/self.t
SHA1 c09c579c74578fbcb9ede55ed634f7052c35580e t/siblings.t
SHA1 0183f5c550973540a4f2d275317350664ae94762 t/similar-aliases.t
SHA1 613d76b8b76c74002da8dff2866539b991b0505a t/smart_tag_wrapper.t
SHA1 863b6d22ad80e7a9b770221d5384146ab6ca5859 t/subclassing.t
SHA1 5bf9c06c76830580e6c402ccea5755201a363a5f t/subtemplates.t
SHA1 b29bbf71af87b128afb6899f024bbd4f5d87a98d t/aliasing.t
SHA1 ecc1013f49f12123c78393cc67afc09f8bdfb607 t/alternative.t
SHA1 90f697ff435105d7dd784e6323ec0ea3e1431e1f t/arg-declaration-styles.t
SHA1 b49f0526b5deb026cc88a91808dcfcad9bd27c21 t/arg-passing.t
SHA1 17290aa0f2a1ec6cac93ab0e38c1504daac51031 t/attributes.t
SHA1 89a6d6d5efeeb0f77bf849a462bffc4ea556ef9e t/closures.t
SHA1 a7d17a14951704955e0c313c5f9bbc005abd27ce t/composition.t
SHA1 94ccc30fd1cf2a62f084351c85083590912bac3e t/deep_aliasing.t
SHA1 584f11977b88eee3fd9b0e7048c324a4ec6fc3b6 t/deep_importing.t
SHA1 c59fe68c7aacee19956b470eec403acfebb9e200 t/deep_mixing.t
SHA1 589e07a8e42e67a4939b5b555f71cb5cc5bbb822 t/dispatch_order.t
SHA1 c094720c3e2611439633d8baaabe96e7c5af3352 t/duplicate_element_ids.t
SHA1 930cd4a44466eb6fb70d5cb91a1431a73515cca8 t/forms.t
SHA1 4cc4cf8beb543796d715d003da52866b7c5304e0 t/import-regression.t
SHA1 bf1dfd4cf42d43798b4ea9c89c21e87c91ce9d3e t/importing.t
SHA1 11343aaa0aeae231361997ccd44abf188de98fe2 t/indent.t
SHA1 176eeceeac1b46d5ff1ce7d9e6363b3ec6b5a9d8 t/indexhtml.t
SHA1 56a834f2099d3956f2b4a490c04063b36edbf0cd t/inline-tagset.t
SHA1 ef67dee0bb8db682889745e0cb8cee8c7c61edc5 t/instrumentation.t
SHA1 b6e93d9604ede87001d1ad15f824afafa66964f2 t/mixing.t
SHA1 728aec74c8e41ef019743d3b1de48421e2e3b69e t/namespace.t
SHA1 b70fce7cec938d2f93536602ff88a18e87f7967d t/nested_show.t
SHA1 53c336678679a10902d9e06c55084855bd0e9fdc t/overloaded.t
SHA1 00e6e826e3a1e07f3feda22f00e616c2ac70590b t/pitfalls.t
SHA1 cbbc166955a5a37313870658d203b9cd55be2338 t/postprocessor.t
SHA1 166d756de9f1f5165d9fa83521ebb62726ce8544 t/private.t
SHA1 22eb04e6c0859f15f77759b18dcf19cc2d2b0e9d t/relative-aliasing.t
SHA1 1dcc317cb5029491a44a9c7eaee5add8219da74c t/relative-mixing.t
SHA1 f14389331a4b463d69cd6705087d1e1327808bc7 t/relative-pathing.t
SHA1 9f631c569f86a38441540ae6dd051aff177db678 t/rt-37622.t
SHA1 dad25f5c714947cf7fb5954fb876b18114c43ed5 t/self.t
SHA1 771c903ee077531f0829b9d4efda1ca4fbd2fdfd t/siblings.t
SHA1 31a78875cd464b5b2c21cee53c5498c97c395ebb t/similar-aliases.t
SHA1 fe981469874ceb8b32100e82559d5eea14db3259 t/smart_tag_wrapper.t
SHA1 5a4d6002efea9daf71d3d291bf2a35751a51cba8 t/subclassing.t
SHA1 679b39abb4812ca1c61ad9e9dd3f5aab97f8829c t/subtemplates.t
SHA1 44f81200ec38ebf8bc9c836e34942f70990e7207 t/tag_sub_list.t
SHA1 bab73f849bd1251f55e8b933a12ea7a8f3f2d44a t/tagset_html.t
SHA1 6eaf0d5fb857c350844f3b70e899d58b8c92ffc8 t/tagset_mix.t
SHA1 03a32c2247b7a3cc7066c2617605e6391e33cd33 t/tagset_rdf.t
SHA1 37978589f2dd9465b67ed70cfe7bca806e0f469f t/tagset_rdf_em.t
SHA1 02301d86757f15e479ca848e7b11c0e625acf304 t/tagset_xul.t
SHA1 1617716eb384026609ac80f505892af9dfbd3fac t/trivial.t
SHA1 66f9ab5624ab7e3afd9a6b5940cc93291f560d01 t/utf8.t
SHA1 70b68474a9925d08b24a7af7354dbb7ab369b448 t/utils.pl
SHA1 6a76d87732069df9fa763e4e69a78eb0aff134ba t/wrappers.t
SHA1 c07bcff77839e622b8b1ecffd492f5ccf0ab359c t/xss.t
SHA1 706c1919716723253eb62dc79b094dd48b7815ad t/tagset_html.t
SHA1 17263784a1a80112896cd157de834709a387fbff t/tagset_mix.t
SHA1 cb48ee69151cf5b07ef19f4b2c727cb5580b1471 t/tagset_rdf.t
SHA1 d6b90c5e540749b6f2b7ffa9f6ae84838a234503 t/tagset_rdf_em.t
SHA1 5da0e537331e19e918c5bbf641922bf9af84ff3c t/tagset_xul.t
SHA1 38da4b71fd139cc8f56b4b93636debf1a52f8351 t/trivial.t
SHA1 a86db44f9d1f77887f9dffbe3ece263ebaee864c t/utf8.t
SHA1 c6780f36485d147ee0a7b295f095995532e19618 t/utils.pl
SHA1 506e99d34f44e087b0d0f6880513648bb37de32a t/wrappers.t
SHA1 7bdcccbdd5253f4eae12d3c279183e10577a0184 t/xss.t
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.7 (Darwin)
iD8DBQFKVQBcsxfQtHhyRPoRAoeXAJ9N5X2WeIAgZCK0ow8lbUOTWlatFwCcCSmq
bWVbz1+k5X2m94gjixfbQkA=
=e1RY
iD8DBQFK6eivsxfQtHhyRPoRApQpAJ9ed3HQZaHJpNJqx7Q4FAQfIZQMVACePkQ2
yDQgnPWhv7oNpYKl/cMI/M4=
=HEfH
-----END PGP SIGNATURE-----
This diff is collapsed.
......@@ -18,6 +18,12 @@ Template::Declare::Buffer - deprecated
This class is deprecated; buffers in Template::Declare are now managed by L<String::BufferStack>.
=begin comment
=head2 new
=end comment
=head1 SEE ALSO
L<Template::Declare>.
......
......@@ -26,7 +26,7 @@ __END__
=head1 NAME
Template::Declare::TagSet - Base class for tag set classes used by Template::Declare::Tags
Template::Declare::TagSet - Base class for tag sets used by Template::Declare::Tags
=head1 SYNOPSIS
......@@ -35,15 +35,16 @@ Template::Declare::TagSet - Base class for tag set classes used by Template::Dec
# returns an array ref for the tag names
sub get_tag_list {
[ qw/ html body tr td table
base meta link hr
/ ]
[ qw(
html body tr td table
base meta link hr
)]
}
# prevents potential naming conflicts:
sub get_alternate_spelling {
my ($self, $tag) = @_;
return 'row' if $tag eq 'tr';
return 'row' if $tag eq 'tr';
return 'cell' if $tag eq 'td';
}
......@@ -51,61 +52,72 @@ Template::Declare::TagSet - Base class for tag set classes used by Template::Dec
# combined to "<tag />":
sub can_combine_empty_tags {
my ($self, $tag) = @_;
$tag =~ /^ base | meta | link | hr $/x;
$tag =~ /^ (?: base | meta | link | hr ) $/x;
}
=head1 DESCRIPTION
Template::Declare::TagSet is the base class for declaring packages of
Template::Delcare tags. If you need to create new tags for use in your
templates, this is the base class for you! Review the source code of
L<Template::Declare::TagSet::HTML|Template::Declare::TagSet::HTML> for a
useful example.
=head1 METHODS
=over
=head2 new( PARAMS )
=item C<< $obj = Template::Declare::TagSet->new({ package => 'Foo::Bar', namespace => undef }); >>
my $tag_set = Template::Declare::TagSet->new({
package => 'Foo::Bar',
namespace => undef,
});
Constructor created by C<Class::Accessor::Fast>,
accepting an optional option list.
Constructor created by C<Class::Accessor::Fast>, accepting an optional hash
reference of parameters.
=item C<< $list = $obj->get_tag_list() >>
=head2 get_tag_list
Returns an array ref for the tag names.
my $list = $tag_set->get_tag_list();
=item C<< $bool = $obj->get_alternate_spelling($tag) >>
Returns an array ref for the tag names offered by a tag set.
Returns whether a tag has an alternative spelling. Basically
it provides a way to work around naming conflicts, for
examples, the C<tr> tag in HTML conflicts with the C<tr>
operator in Perl and the C<template> tag in XUL conflicts
with the C<template> sub exported by C<Template::Declare::Tags>.
=head2 get_alternate_spelling( TAG )
=item C<< $bool = $obj->can_combine_empty_tags($tag) >>
$bool = $obj->get_alternate_spelling($tag);
Specifies whether "<tag></tag>" can be combined into a single
token "<tag />".
Returns true if a tag has an alternative spelling. Basically it provides a way
to work around naming conflicts. For example, the C<tr> tag in HTML conflicts
with Perl's C<tr> operator, and the C<template> tag in XUL conflicts with the
C<template> sub exported by C<Template::Declare::Tags>.
Always returns true (value 1) in this base class.
=head2 can_combine_empty_tags( TAG )
But there's some cases where you want to override the
deafault implementation. For example,
C<< Template::Declare::TagSet::HTML->can_combine_empty_tags('img') >> returns true (1) since C<< <img src="..." /> >> is always
required for HTML pages.
$bool = $obj->can_combine_empty_tags($tag);
=back
Specifies whether C<< <tag></tag> >> can be combined into a single token,
C<< <tag /> >>. By default, all tags can be combined into a single token;
override in a subclass to change this value where appropriate. For example,
C<< Template::Declare::TagSet::HTML->can_combine_empty_tags('img') >> returns
true since C<< <img src="..." /> >> is always required for HTML pages.
C<< Template::Declare::TagSet::HTML->can_combine_empty_tags('script') >>, on
the other hand, returns false, since some browsers can't handle a single
script token.
=head1 ACCESSORS
This class has two read-only accessors:
=over
=head2 package
=item C<< $obj->package() >>
my $package = $obj->package();
Retrieves the value of the C<package> option set via
the constructor.
Retrieves the value of the C<package> option set via the constructor.
=item C<< $obj->namespace() >>
=head2 namespace
Retrieves the value of the C<namespace> option set by
the constructor.
my $namespace = $obj->namespace();
=back
Retrieves the value of the C<namespace> option set via the constructor.
=head1 AUTHOR
......
......@@ -55,7 +55,7 @@ __END__
=head1 NAME
Template::Declare::TagSet::HTML - Tag set for HTML
Template::Declare::TagSet::HTML - Template::Declare tag set for HTML
=head1 SYNOPSIS
......@@ -73,56 +73,344 @@ Template::Declare::TagSet::HTML - Tag set for HTML
# in Template::Declare::Tags:
use Template::Declare::TagSet::HTML;
my $tagset = Template::Declare::TagSet::HTML->new(
{ package => 'html', namespace => 'html' }
);
my $tagset = Template::Declare::TagSet::HTML->new({
package => 'MyHTML',
namespace => 'html',
});
my $list = $tagset->get_tag_list();
print "@$list";
print $_, $/ for @{ $list };
my $altern = $tagset->get_alternate_spelling('tr');
if ( defined $altern ) {
if ( $altern = $tagset->get_alternate_spelling('tr') ) {
print $altern;
}
if ( $tagset->can_combine_empty_tags('img') ) {
print "<img src='blah.gif' />";
print q{<img src="blah.gif" />};
}
=head1 INHERITANCE
=head1 DESCRIPTION
Template::Declare::TagSet::HTML
isa Template::Declare::TagSet
Template::Declare::TagSet::HTML defines a full set of HTML tags for use in
Template::Declare templates. All elements for HTML 2, HTML 3, HTML 4, and
XHTML 1 are defined. You generally won't use this module directly, but will
load it via:
use Template::Declare::Tags 'HTML';
=head1 METHODS
=head2 new( PARAMS )
my $html_tag_set = Template::Declare::TagSet->new({
package => 'MyHTML',
namespace => 'html',
});
Constructor inherited from L<Template::Declare::TagSet|Template::Declare::TagSet>.
=head2 get_tag_list
my $list = $tag_set->get_tag_list();
Returns an array ref of all the HTML tags defined by
Template::Declare::TagSet::HTML. Here is the complete list:
=over
=item C<h1>
=item C<h2>
=item C<h3>
=item C<h4>
=item C<h5>
=item C<h6>
=item C<p>
=item C<br>
=item C<hr>
=item C<ol>
=item C<ul>
=item C<li>
=item C<dl>
=item C<dt>
=item C<dd>
=item C<menu>
=item C<code>
=item C<var>
=item C<strong>
=item C<em>
=item C<tt>
=item C<u>
=item C<i>
=item C<b>
=item C<blockquote>
=item C<pre>
=item C<img>
=item C<a>
=item C<address>
=item C<cite>
=item C<samp>
=item C<dfn>
=item C<html>
=item C<head>
=item C<base>
=item C<body>
=item C<link>
=item C<nextid>
=item C<title>
=item C<meta>
=item C<kbd>
=item C<start_html>
=item C<end_html>
=item C<input>
=item C<select>
=item C<option>
=item C<comment>
=item C<charset>
=item C<escapehtml>
=item C<div>
=item C<table>
=item C<caption>
=item C<th>
=item C<td>
=item C<tr>
=item C<tr>
=item C<sup>
=item C<sub>
=item C<strike>
=item C<applet>
=item C<param>
=item C<nobr>
=item C<embed>
=item C<basefont>
=item C<style>
=item C<span>
=item C<layer>
=item C<ilayer>
=item C<font>
=item C<frameset>
=item C<frame>
=item C<script>
=item C<small>
=item C<big>
=item C<area>
=item C<map>
=item C<abbr>
=item C<acronym>
=item C<bdo>
=item C<col>
=item C<colgroup>
=item C<del>
=item C<fieldset>
=item C<iframe>
=item C<ins>
=item C<label>
=item C<legend>
=item C<noframes>
=item C<noscript>
=item C<object>
=item C<optgroup>
=item C<q>
=item C<thead>
=item C<tbody>
=item C<tfoot>
=item C<blink>
=item C<fontsize>
=item C<center>
=item C<textfield>
=item C<textarea>
=item C<filefield>
=item C<password_field>
=item C<hidden>
=item C<checkbox>
=item C<checkbox_group>
=item C<submit>
=item C<reset>
=item C<defaults>
=item C<radio_group>
=item C<popup_menu>
=item C<button>
=item C<autoescape>
=item C<scrolling_list>
=item C<image_button>
=item C<start_form>
=item C<end_form>
=item C<startform>
=item C<endform>
=item C<start_multipart_form>
=item C<end_multipart_form>
=item C<isindex>
=item C<tmpfilename>
=item C<uploadinfo>
=item C<url_encoded>
=item C<multipart>
=item C<form>
=item C<canvas>
=back
=head2 get_alternate_spelling( TAG )
$bool = $obj->get_alternate_spelling($tag);
Returns the alternative spelling for a given tag if any or undef otherwise.
Currently, C<tr> is mapped to C<row>, C<td> is mapped to C<cell>, and C<base>
is mapped to C<html_base>. These alternates are to avoid conflicts with the
Perl operator C<tr> and the L<base|base> module, with C<td> changed so as to
keep consistent with table rows.
=head2 can_combine_empty_tags( TAG )
$bool = $obj->can_combine_empty_tags($tag);
Specifies whether C<< <tag></tag> >> can be combined into a single token,
C<< <tag /> >>. Currently, only a few HTML tags are allowed to be combined:
=over
=item C<< $obj = Template::Declare::TagSet::HTML->new({ namespace => $XML_namespace, package => $Perl_package }) >>
=item C<base>
Constructor inherited from L<Template::Declare::TagSet>.
=item C<meta>
=item C<< $list = $obj->get_tag_list() >>
=item C<link>
Returns an array ref for the tag names.
=item C<hr>
Out of the box, C<Template::Declare::TagSet::HTML> returns the
C<:html2 :html3 :html4 :netscape> and C<:form>
tagsets from CGI.pm.
=item C<br>
=item C<< $bool = $obj->get_alternate_spelling($tag) >>
=item C<param>
Returns the alternative spelling for a given tag if any or
undef otherwise. Currently, C<tr> is mapped to C<row>,
C<td> is mapped to C<cell>, and C<base> is mapped to
C<html_base>.
=item C<img>
Because C<tr> is reserved by the perl interpreter for
the operator of that name. We can't override it. And
we override C<td> as well so as to keep consistent.
=item C<area>
For similar reasons, 'base' often gives us trouble too ;)
=item C<input>
=item C<< $bool = $obj->can_combine_empty_tags($tag) >>
=item C<col>
=back
......@@ -132,5 +420,7 @@ Agent Zhang <agentzh@yahoo.cn>
=head1 SEE ALSO
L<Template::Declare::TagSet>, L<Template::Declare::TagSet::XUL>, L<Template::Declare::TagSet::RDF>, L<Template::Declare::Tags>, L<Template::Declare>.
L<Template::Declare::TagSet>, L<Template::Declare::TagSet::XUL>,
L<Template::Declare::TagSet::RDF>, L<Template::Declare::Tags>,
L<Template::Declare>.
......@@ -23,14 +23,13 @@ __END__
=head1 NAME
Template::Declare::TagSet::RDF - Tag set for RDF
Template::Declare::TagSet::RDF - Template::Declare tag set for RDF