Template-LiquidX-Tidy

 view release on metacpan or  search on metacpan

lib/App/LiquidTidy.pm  view on Meta::CPAN

package App::LiquidTidy;

use strict;
use warnings;
use experimental 'signatures';

our $VERSION = '0.03';

use Template::LiquidX::Tidy;
use Template::Liquid;
use Template::LiquidX::Tidy::Tag::include;
use Template::LiquidX::Tidy::Tag::post_url;

sub new ($class, $args) {
    bless $args => $class
}

sub run ($self) {
    die "No file name specified\n" unless $self->{file};
    my $fh;
    if ($self->{file} eq '-') {
	$fh = *STDIN;
    }
    else {
	open $fh, '<', $self->{file} or die "Error opening $self->{file}: $!\n";
    }
    my $content = do { local $/; <$fh>; };

    my $sol = Template::Liquid->parse($content);

    my $liquid_tidy;
    my %opts = (
	force_nl => 1,
       );
    if ($self->{file} =~ /\.markdown/ || $self->{file} =~ /\.md/ || $self->{file} =~ /\.txt/) {
	$opts{html} = 0;
    }

    %opts = (%opts, %$self);
    $liquid_tidy = $sol->{document}->tidy(\%opts);
    print $liquid_tidy;
}

# print Dumper $sol->{document};
# print $sol->{document}->dump();
# print $sol->{document}->tidy({force_nl => 1});
# my $liquid_tidy = $sol->{document}->tidy();

# sub test_html_tidy ($source) {
#     my ($trans, $map) = Template::Liquid->parse($sol)->{document}->transform();
#     print $trans;
#     my @cmd = (qw(tidy
# 	      --indent auto
# 	      --indent-spaces 4
# 	      --show-body-only auto
# 	      --fix-uri no
# 	      --literal-attributes yes
# 	      --preserve-entities yes
# 	      --new-pre-tags body
# 	      --quiet
# 	    ));
#     my ($out, $err);
#     IPC::Run::run \@cmd, \$trans, \$out, \$err;  warn "tidy: $?";

#     print transform_back($out, $map);
# }

# sub dump_map ($map) {
#     for (sort { $a <=> $b } grep !/^__/, keys $map->%*) {
# 	my $i = $map->{$_};
# 	print $_, "\t", (defined $i->{markup} ? $i->{markup} =~ s/\n\K/\t/gr : ''), "\n";
# 	print "\t", $i->{markup_2} =~ s/\n\K/\t/gr, "\n"
# 	    if defined $i->{markup_2};
# 	print "\n";
#     }

 view all matches for this distribution
 view release on metacpan -  search on metacpan

( run in 0.736 second using v1.00-cache-2.02-grep-82fe00e-cpan-9e6bc14194b )