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{