Я пытаюсь вывести встроенный Pod в виде текста ANSI на терминал. В Perl 5 я могу использовать Pod::Text::Termcap
:
use strict;
use warnings;
use Pod::Text::Termcap;
my $str = do {local $/; <DATA>};
my $parser = Pod::Text::Termcap->new();
$parser->parse_string_document( $str, \*STDERR );
__DATA__
=head1 SYNOPSIS
my_test_command I<filename> [OPTIONS]
=head1 ARGUMENTS
=over 4
=item I<filename>
File name to test
=back
=head1 OPTIONS
=over 4
=item B<--help>
Prints help
=back
=head1 DESCRIPTION
A sample test command with embedded Pod
Вывод:
Я пытался добиться того же в Perl 6:
use v6;
%*ENV<POD_TO_TEXT_ANSI> = 1;
my @lines;
for $=pod -> $pod-block {
for $pod-block.contents -> $pod-item {
use Pod::To::Text;
push @lines, pod2text($pod-item);
}
}
say @lines.join("\n\n");
=begin pod
=head1 SYNOPSIS
my_test_command I<filename> [OPTIONS]
=head1 ARGUMENTS
=item I<filename>
File name to test
=head1 OPTIONS
=item B<--help>
Prints help
=head1 DESCRIPTION
A sample test command with embedded Pod
=end pod
Вывод:
Как видно, в выходных данных Perl 6 отсутствуют escape-последовательности ANSI termcap. Как мне получить в Perl 6 такие функции ANSI, как полужирный шрифт и подчеркнутый текст?
colored
из Terminal :: ANSIColor). Это требует кода. Но даже если я добавлю код, это не сработает. Дело в том, что он не работает и с perl6 --doc, то есть без цвета. Так что я боюсь, что ты здесь сам по себе ... - person jjmerelo   schedule 18.04.2019