NAME
HTML::Declare - For When Template Systems Are Too Huge And Heredocs Too Messy
SYNOPSIS
use HTML::Declare ':all';
# A simple hello world
print HTML {
_ => [
HEAD { _ => TITLE { _ => 'Hello World!' } },
BODY { _ => 'Hello World!' }
]
};
# A simple anchor nested in a div
print DIV {
_ => [
A {
href => 'http://127.0.0.1',
_ => '<< Home Sweet Home!'
}
]
};
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. ;)
FUNCTIONS
All 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) or a arrayref containing strings that shouldn't be encoded.
<TAG> { attribute => 'value' }
DIV { id => 'foo', _ => 'lalala' }
DIV { id => 'link' _ => [ '<b>Don't encode me!</b>' ] }
DIV { _ => [ A { href => 'http://127.0.0.1', _ => 'Home!' } ] }
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
AUTHOR
Sebastian Riedel, sri@oook.de
LICENSE
This library is free software, you can redistribute it and/or modify it under the same terms as Perl itself.