---
name: "Template::Declare::TagSet::HTML"
section: "3pm"
platform: "linux"
package: "libtemplate-declare-perl"
version: "0.47-3"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/Template::Declare::TagSet::HTML"
---

# Template::Declare::TagSet::HTML(3pm)

Template::Declare tag set for HTML

## NAME

Template::Declare::TagSet::HTML - Template::Declare tag set for HTML

## SYNOPSIS

```
    # normal use on the user side:
    use base 'Template::Declare';
    use Template::Declare::Tags 'HTML';
    template foo => sub {
        html {
            body {
            }
        }
    };
    # in Template::Declare::Tags:
    use Template::Declare::TagSet::HTML;
    my $tagset = Template::Declare::TagSet::HTML->new({
        package   => 'MyHTML',
        namespace => 'html',
    });
    my $list = $tagset->get_tag_list();
    print $_, $/ for @{ $list };
    if ( $altern = $tagset->get_alternate_spelling('tr') ) {
        print $altern;
    }
    if ( $tagset->can_combine_empty_tags('img') ) {
        print q{<img src="blah.gif" />};
    }
```

## DESCRIPTION

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';
```

## METHODS

### new( PARAMS )

```
    my $html_tag_set = Template::Declare::TagSet->new({
        package   => 'MyHTML',
        namespace => 'html',
    });
```

Constructor inherited from Template::Declare::TagSet.

### 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:

- •

  `"h1"`

- •

  `"h2"`

- •

  `"h3"`

- •

  `"h4"`

- •

  `"h5"`

- •

  `"h6"`

- •

  `"p"`

- •

  `"br"`

- •

  `"hr"`

- •

  `"ol"`

- •

  `"ul"`

- •

  `"li"`

- •

  `"dl"`

- •

  `"dt"`

- •

  `"dd"`

- •

  `"menu"`

- •

  `"code"`

- •

  `"var"`

- •

  `"strong"`

- •

  `"em"`

- •

  `"tt"`

- •

  `"u"`

- •

  `"i"`

- •

  `"b"`

- •

  `"blockquote"`

- •

  `"pre"`

- •

  `"img"`

- •

  `"a"`

- •

  `"address"`

- •

  `"cite"`

- •

  `"samp"`

- •

  `"dfn"`

- •

  `"html"`

- •

  `"head"`

- •

  `"base"`

- •

  `"body"`

- •

  `"link"`

- •

  `"nextid"`

- •

  `"title"`

- •

  `"meta"`

- •

  `"kbd"`

- •

  `"start_html"`

- •

  `"end_html"`

- •

  `"input"`

- •

  `"select"`

- •

  `"option"`

- •

  `"comment"`

- •

  `"charset"`

- •

  `"escapehtml"`

- •

  `"div"`

- •

  `"table"`

- •

  `"caption"`

- •

  `"th"`

- •

  `"td"`

- •

  `"tr"`

- •

  `"tr"`

- •

  `"sup"`

- •

  `"sub"`

- •

  `"strike"`

- •

  `"applet"`

- •

  `"param"`

- •

  `"nobr"`

- •

  `"embed"`

- •

  `"basefont"`

- •

  `"style"`

- •

  `"span"`

- •

  `"layer"`

- •

  `"ilayer"`

- •

  `"font"`

- •

  `"frameset"`

- •

  `"frame"`

- •

  `"script"`

- •

  `"small"`

- •

  `"big"`

- •

  `"area"`

- •

  `"map"`

- •

  `"abbr"`

- •

  `"acronym"`

- •

  `"bdo"`

- •

  `"col"`

- •

  `"colgroup"`

- •

  `"del"`

- •

  `"fieldset"`

- •

  `"iframe"`

- •

  `"ins"`

- •

  `"label"`

- •

  `"legend"`

- •

  `"noframes"`

- •

  `"noscript"`

- •

  `"object"`

- •

  `"optgroup"`

- •

  `"q"`

- •

  `"thead"`

- •

  `"tbody"`

- •

  `"tfoot"`

- •

  `"blink"`

- •

  `"fontsize"`

- •

  `"center"`

- •

  `"textfield"`

- •

  `"textarea"`

- •

  `"filefield"`

- •

  `"password_field"`

- •

  `"hidden"`

- •

  `"checkbox"`

- •

  `"checkbox_group"`

- •

  `"submit"`

- •

  `"reset"`

- •

  `"defaults"`

- •

  `"radio_group"`

- •

  `"popup_menu"`

- •

  `"button"`

- •

  `"autoescape"`

- •

  `"scrolling_list"`

- •

  `"image_button"`

- •

  `"start_form"`

- •

  `"end_form"`

- •

  `"startform"`

- •

  `"endform"`

- •

  `"start_multipart_form"`

- •

  `"end_multipart_form"`

- •

  `"isindex"`

- •

  `"tmpfilename"`

- •

  `"uploadinfo"`

- •

  `"url_encoded"`

- •

  `"multipart"`

- •

  `"form"`

- •

  `"canvas"`

- •

  `"section"`

- •

  `"article"`

- •

  `"aside"`

- •

  `"hgroup"`

- •

  `"header"`

- •

  `"footer"`

- •

  `"nav"`

- •

  `"figure"`

- •

  `"figcaption"`

- •

  `"video"`

- •

  `"audio"`

- •

  `"embed"`

- •

  `"mark"`

- •

  `"progress"`

- •

  `"meter"`

- •

  `"time"`

- •

  `"ruby"`

- •

  `"rt"`

- •

  `"rp"`

- •

  `"bdi"`

- •

  `"wbr"`

- •

  `"command"`

- •

  `"details"`

- •

  `"datalist"`

- •

  `"keygen"`

- •

  `"output"`

### get\_alternate\_spelling( TAG )

```
    $bool = $obj->get_alternate_spelling($tag);
```

Returns the alternative spelling for a given tag if any or undef otherwise. Currently, `"tr"` is mapped to `"row"`, `"td"` is mapped to `"cell"`, `"q"` is mapped to `"quote"`, `"base"` is mapped to `"html_base"`, and `"time"` is mapped to `"datetime"`. These alternates are to avoid conflicts with the Perl `"tr"` and `"q"` operators, the `"time"` function, and the base module, with `"td"` changed so as to keep consistent with table rows.

### can\_combine\_empty\_tags( TAG )

```
    $bool = $obj->can_combine_empty_tags($tag);
```

Specifies whether `"<tag></tag>"` can be combined into a single token, `"<tag />"`. Currently, only a few HTML tags are allowed to be combined:

- •

  `"base"`

- •

  `"meta"`

- •

  `"link"`

- •

  `"hr"`

- •

  `"br"`

- •

  `"param"`

- •

  `"img"`

- •

  `"area"`

- •

  `"input"`

- •

  `"col"`

## AUTHOR

Agent Zhang \<agentzh@yahoo.cn\>

## SEE ALSO

Template::Declare::TagSet, Template::Declare::TagSet::XUL, Template::Declare::TagSet::RDF, Template::Declare::Tags, Template::Declare.
