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.
<TAG> { attribute => 'value' }
DIV { id => 'foo', _ => 'lalala<<encode me>>' }
DIV { id => 'link' _ => [ '<b>Don't encode me!</b>' ] }
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.