NAME
    HTML::Declare - For When Template Systems Are Too Huge And Heredocs Too
    Messy
VERSION
    version 2.6
SYNOPSIS
        # Import all constructors
        use HTML::Declare ':all';
    
        # A simple hello world
        print HTML { 
            _ => [
                HEAD { _ => TITLE { _ => 'Hello World!' } },
                BODY { _ => 'Hello World!' } 
            ]   
        };
    
        # Import specific constructors
        use HTML::Declare qw/DIV A/;
    
        # A simple anchor nested in a div
        my $tree = DIV {
            _ => [
                A {
                    href => 'http://127.0.0.1',
                    _    => '<< Home Sweet Home!'
                }
            ]
        };
        print "$tree";
DESCRIPTION
    A very simple micro language to generate HTML.
    This is not a real template system like Template or HTML::Mason, it's
    just a simple (and fun) way to avoid those messy heredocs. ;)
METHODS
    HTML::Declare instances have the following methods.
 new
 as_html
 attributes
 children
 tag
FUNCTIONS
    All exported functions work the same, they expect a hashref as first
    argument which contains attributes for the tag to generate.
    The special attribute _ contains the content for the tag. The content
    may be a single string (in this case entities are auto encoded), a
    arrayref containing strings that shouldn't be encoded or HTML::Declare
    instances.
         { attribute => 'value' }
        DIV { id => 'foo', _ => 'lalala<>' }
        DIV { id => 'link' _ => [ 'Don't encode me!' ] }
        DIV { _ => [ A { href => 'http://127.0.0.1', _ => 'Home!' } ] }
        DIV { _ => [ A { href => 'http://host', _ => H1 { _ => 'Test' } } ] }
 A
 ABBR
 ACRONYM
 ADDRESS
 AREA
 B
 BASE
 BDO
 BIG
 BLOCKQUOTE
 BODY
 BR
 BUTTON
 CAPTION
 CITE
 CODE
 COL
 COLGROUP
 DD
 DEL
 DIV
 DFN
 DL
 DT
 EM
 FIELDSET
 FORM
 FRAME
 FRAMESET
 H1
 H2
 H3
 H4
 H5
 H6
 HEAD
 HR
 HTML
 I
 IFRAME
 IMG
 INPUT
 INS
 KBD
 LABEL
 LEGEND
 LI
 LINK
 MAP
 META
 NOFRAMES
 NOSCRIPT
 OBJECT
 OL
 OPTGROUP
 OPTION
 P
 PARAM
 PRE
 Q
 SAMP
 SCRIPT
 SELECT
 SMALL
 SPAN
 STRONG
 STYLE
 SUB
 SUP
 TABLE
 TAG
 TBODY
 TD
 TEXTAREA
 TFOOT
 TH
 THEAD
 TITLE
 TR
 TT
 UL
 VAR
THANK YOU
    Tatsuhiko Miyagawa
AUTHOR
    Sebastian Riedel, sri@oook.de
COPYRIGHT AND LICENSE
    This software is copyright (c) 2017 by Sebastian Riedel, C.
    This is free software; you can redistribute it and/or modify it under
    the same terms as the Perl 5 programming language system itself.