package YAPE::HTML;
use YAPE::HTML::Element;
use Carp;
use strict;
use vars qw( $VERSION %OPEN %EMPTY %SSI );
$VERSION = '1.11';
# when tags get added here, update the POD
my @empty = qw( area base br hr img input link meta param );
my @open = qw( dd dt li p );
@OPEN{@empty, @open} = ();
sub OPEN { @OPEN{map lc, @_} = () }
@EMPTY{@empty} = ();
sub EMPTY { @OPEN{map lc, @_} = @EMPTY{map lc, @_} = () }
# "CGI Programming with Perl", Ch. 6, "Server Side Includes" (O'Reilly)
%SSI = (
config => { map +($_,1), qw( errmsg sizefmt timefmt ) },
echo => { map +($_,1), qw( var ) },
elif => { map +($_,1), qw( expr ) },
else => {},
endif => {},
exec => { map +($_,1), qw( cgi cmd ) },
flastmod => { map +($_,1), qw( file ) },
fsize => { map +($_,1), qw( file virtual ) },
if => { map +($_,1), qw( expr ) },
include => { map +($_,1), qw( file virtual ) },
printenv => {},
set => { map +($_,1), qw( var ) },
);
my %pat = (
# incomplete DTD support -- add to future version
DTD => qr{ qr{ \s+ ( "[^"]*" | '[^']*' | [^\s>]* ) }x,
# incomplete PI support -- add to future version
PI => qr{ <\? (\S+) }x,
SSI => qr{