Template-LiquidX-Tidy
view release on metacpan or search on metacpan
lib/Template/LiquidX/Tidy/impl.pm view on Meta::CPAN
# closed_tags /
# level at return time
# returns a list of [ level, fragment ] pairs and modifies $stack
sub _tidy_html ($html, $args, $level, $clevel, $stack) {
#print ((" " x $clevel ). "_tidy_html <<$html>> <<$level>>\n");
my $nl = $html =~ /\n/;
my @return;
my $last_line_start = 0;
my $start_level = $level;
my $level_change = '';
while ($html =~ m{(?: (?<cdata> <!\[CDATA\[(.*?)\]\]> )
| (?<nl> \n )
| (?<close2> />)
| <(?<close> /)? (?<tag> \w+ )
) }gsx) {
#use Data::Dumper; warn Dumper \%+;
if ($+{cdata}) {
# ignore
}
elsif (length $+{nl}) {
1 while $level_change =~ s/\(\)//;
push @return, [ $start_level - ($level_change =~ y/)//), (substr $html, $last_line_start, (pos $html) - $last_line_start),
+{ html => 1,
($stack->{open_tags} ? (open => [$stack->{open_tags}->@*]) : ()),
($stack->{closed_tags} ? (closed => [$stack->{closed_tags}->@*]) : ()), } ];
$last_line_start = pos($html);
$start_level = $level;
( run in 0.440 second using v1.01-cache-2.11-cpan-454fe037f31 )