—#!perl
use
5.010001;
use
strict;
use
warnings;
use
Text::ANSITable;
our
$AUTHORITY
=
'cpan:PERLANCAR'
;
# AUTHORITY
our
$DATE
=
'2025-02-24'
;
# DATE
our
$DIST
=
'Text-ANSITable'
;
# DIST
our
$VERSION
=
'0.610'
;
# VERSION
binmode
(STDOUT,
":encoding(utf8)"
);
my
$t
= Text::ANSITable->new;
if
(
$ARGV
[0]) {
$t
->border_style(
$ARGV
[0]);
}
my
@all_bs
=
$t
->list_border_styles;
my
%all_bsobj
;
for
my
$bsname
(
@all_bs
) {
my
$info
= instantiate_class_with_optional_args({
ns_prefix
=>
"BorderStyle"
,
construct
=>0},
$bsname
);
my
$class
=
$info
->{class};
my
$struct
=
$class
->get_struct;
my
$args
= (
$struct
->{examples} && @{
$struct
->{examples} } ?
$struct
->{examples}[0]{args} :
undef
) // {};
$all_bsobj
{
$bsname
} = instantiate_class_with_optional_args({}, [
$class
,
$args
]);
}
$t
->columns([
'Name'
,
'Summary'
,
'box_chars?'
,
'utf8?'
]);
my
$utf8
;
# we sort by not utf8 and then utf8, just to demonstrate add_row_separator
for
my
$name
(
sort
{(
$all_bsobj
{
$a
}->get_struct->{utf8} ? 1:0)<=>(
$all_bsobj
{
$b
}->get_struct->{utf8} ? 1:0) ||
$a
cmp
$b
}
@all_bs
) {
my
$bsobj
=
$all_bsobj
{
$name
};
my
$struct
=
$bsobj
->get_struct;
my
$selected
=
$name
eq
$t
->border_style;
$t
->add_row(
[
$name
. (
$selected
?
" (*)"
:
""
),
$struct
->{summary},
$struct
->{box_chars} ? 1:0,
$struct
->{utf8} ? 1:0],
{
fgcolor
=>
$selected
&&
$t
->use_color ?
"aaaa00"
:
undef
});
if
(!
$utf8
&&
$struct
->{utf8}) {
$t
->add_row_separator;
$utf8
++;
}
}
say
"Tip: you can run me with border style name as argument to try it out."
;
$t
->draw;
#use Data::Dump; dd $t->{_row_separators}; dd $t->{_draw}{frow_separators};
# ABSTRACT: List available border styles for Text::ANSITable
# PODNAME: ansitable-list-border-styles
__END__
=pod
=encoding UTF-8
=head1 NAME
ansitable-list-border-styles - List available border styles for Text::ANSITable
=head1 VERSION
This document describes version 0.610 of ansitable-list-border-styles (from Perl distribution Text-ANSITable), released on 2025-02-24.
=head1 SYNOPSIS
% ansitable-list-border-styles
Sample output:
Tip: you can run me with border style name as argument to try it out.
.-------------------------------------------------------------------------------------------------------------------------------------------------------------------------.
| Name Summary box_chars? utf8? |
| |
| ASCII::None No borders, but row separator is still drawn using dashes N N |
| ASCII::SingleLine Single line border with ASCII characters N N |
| ASCII::SingleLineDoubleAfterHeader Just like ASCII::SingleLine but uses double line to separate header row and first data row N N |
| ASCII::SingleLineHorizontalOnly Single line border with ASCII characters, horizontal only N N |
| ASCII::SingleLineInnerOnly Single line border with ASCII characters, between columns only N N |
| ASCII::SingleLineOuterOnly (*) Single line border with ASCII characters, outer borders only N N |
| ASCII::SingleLineVerticalOnly Single line border with ASCII characters, vertical only N N |
| ASCII::Space Space as borders, but data row separator is still drawn using dashes N N |
| ASCII::SpaceInnerOnly No borders, but columns are still separated using spaces and data row separator is still drawn using N N |
| dashes |
| BoxChar::None No borders, but data row separator is still drawn using horizontal line Y N |
| BoxChar::SingleLine Single line border with box-drawing characters Y N |
| BoxChar::SingleLineHorizontalOnly Single line border with box-drawing characters, horizontal only Y N |
| BoxChar::SingleLineInnerOnly Single line border with box-drawing characters, between columns only Y N |
| BoxChar::SingleLineOuterOnly Single line border with box-drawing characters, outer borders only Y N |
| BoxChar::SingleLineVerticalOnly Single line border with box-drawing characters, vertical only Y N |
| BoxChar::Space Space as borders, but data row separator is still drawn using horizontal line Y N |
| BoxChar::SpaceInnerOnly No borders, but columns are still separated using spaces and data row separator is still drawn using Y N |
| horizontal line |
| Test::CustomChar A border style that uses a single custom character N N |
| Test::Random A border style that uses random characters N N |
| Text::ANSITable::OldCompat::Default::non No borders, but row separator is still drawn using dashes N N |
| e_ascii |
| Text::ANSITable::OldCompat::Default::non No borders, but data row separator is still drawn using horizontal line Y N |
| e_boxchar |
| Text::ANSITable::OldCompat::Default::sin Single line border with ASCII characters N N |
| gle_ascii |
| Text::ANSITable::OldCompat::Default::sin Single line border with box-drawing characters Y N |
| gle_boxchar |
| Text::ANSITable::OldCompat::Default::sin Single line border with ASCII characters, horizontal only N N |
| gleh_ascii |
| Text::ANSITable::OldCompat::Default::sin Single line border with box-drawing characters, horizontal only Y N |
| gleh_boxchar |
| Text::ANSITable::OldCompat::Default::sin Single line border with ASCII characters, between columns only N N |
| glei_ascii |
| Text::ANSITable::OldCompat::Default::sin Single line border with box-drawing characters, between columns only Y N |
| glei_boxchar |
| Text::ANSITable::OldCompat::Default::sin Single line border with ASCII characters, outer borders only N N |
| gleo_ascii |
| Text::ANSITable::OldCompat::Default::sin Single line border with box-drawing characters, outer borders only Y N |
| gleo_boxchar |
| Text::ANSITable::OldCompat::Default::sin Single line border with ASCII characters, vertical only N N |
| glev_ascii |
| Text::ANSITable::OldCompat::Default::sin Single line border with box-drawing characters, vertical only Y N |
| glev_boxchar |
| Text::ANSITable::OldCompat::Default::spa Space as borders, but data row separator is still drawn using dashes N N |
| ce_ascii |
| Text::ANSITable::OldCompat::Default::spa Space as borders, but data row separator is still drawn using horizontal line Y N |
| ce_boxchar |
| Text::ANSITable::OldCompat::Default::spa No borders, but columns are still separated using spaces and data row separator is still drawn using N N |
| cei_ascii dashes |
| Text::ANSITable::OldCompat::Default::spa No borders, but columns are still separated using spaces and data row separator is still drawn using Y N |
| cei_boxchar horizontal line |
| Test::Labeled A border style that uses labeled characters N Y |
| |
| Text::ANSITable::OldCompat::Default::bol Bold single-line border with UTF8 characters N Y |
| d |
| Text::ANSITable::OldCompat::Default::bri Single-line, bold on bottom right to give illusion of depth N Y |
| ck |
| Text::ANSITable::OldCompat::Default::bri Single-line (outer only), bold on bottom right to give illusion of depth N Y |
| cko |
| Text::ANSITable::OldCompat::Default::csi Single-line border with UTF8 characters, curved edges N Y |
| ngle |
| Text::ANSITable::OldCompat::Default::dou Double-line border with UTF8 characters N Y |
| ble |
| Text::ANSITable::OldCompat::Default::non No borders, but data row separator is still drawn using horizontal line N Y |
| e_utf8 |
| Text::ANSITable::OldCompat::Default::sin Single-line border with UTF8 characters N Y |
| gle_utf8 |
| Text::ANSITable::OldCompat::Default::sin Single line border with box-drawing characters, horizontal only N Y |
| gleh_utf8 |
| Text::ANSITable::OldCompat::Default::sin Single line border with UTF8 characters, between columns only N Y |
| glei_utf8 |
| Text::ANSITable::OldCompat::Default::sin Single line border with UTF8 characters, outer borders only N Y |
| gleo_utf8 |
| Text::ANSITable::OldCompat::Default::sin Single line border with UTF8 characters, vertical only N Y |
| glev_utf8 |
| Text::ANSITable::OldCompat::Default::spa Space as borders, but data row separator is still drawn using horizontal line N Y |
| ce_utf8 |
| Text::ANSITable::OldCompat::Default::spa No borders, but columns are still separated using spaces and data row separator is still drawn using N Y |
| cei_utf8 horizontal line |
| UTF8::Brick Single-line, bold on bottom right to give illusion of depth N Y |
| UTF8::BrickOuterOnly Single-line (outer only), bold on bottom right to give illusion of depth N Y |
| UTF8::DoubleLine Double-line border with UTF8 characters N Y |
| UTF8::None No borders, but data row separator is still drawn using horizontal line N Y |
| UTF8::SingleLine Single-line border with UTF8 characters N Y |
| UTF8::SingleLineBold Bold single-line border with UTF8 characters N Y |
| UTF8::SingleLineBoldHeader Single-line border (header box bold) with UTF8 characters N Y |
| UTF8::SingleLineCurved Single-line border with UTF8 characters, curved edges N Y |
| UTF8::SingleLineDoubleAfterHeader Just like UTF8::SingleLine but uses double line to separate header row and first data row N Y |
| UTF8::SingleLineHorizontalOnly Single line border with box-drawing characters, horizontal only N Y |
| UTF8::SingleLineInnerOnly Single line border with UTF8 characters, between columns only N Y |
| UTF8::SingleLineOuterOnly Single line border with UTF8 characters, outer borders only N Y |
| UTF8::SingleLineVerticalOnly Single line border with UTF8 characters, vertical only N Y |
| UTF8::Space Space as borders, but data row separator is still drawn using horizontal line N Y |
| UTF8::SpaceInnerOnly No borders, but columns are still separated using spaces and data row separator is still drawn using N Y |
| horizontal line |
`-------------------------------------------------------------------------------------------------------------------------------------------------------------------------'
=head1 HOMEPAGE
Please visit the project's homepage at L<https://metacpan.org/release/Text-ANSITable>.
=head1 SOURCE
Source repository is at L<https://github.com/perlancar/perl-Text-ANSITable>.
=head1 AUTHOR
perlancar <perlancar@cpan.org>
=head1 CONTRIBUTING
To contribute, you can send patches by email/via RT, or send pull requests on
GitHub.
Most of the time, you don't need to build the distribution yourself. You can
simply modify the code, then test via:
% prove -l
If you want to build the distribution (e.g. to try to install it locally on your
system), you can install L<Dist::Zilla>,
L<Dist::Zilla::PluginBundle::Author::PERLANCAR>,
L<Pod::Weaver::PluginBundle::Author::PERLANCAR>, and sometimes one or two other
Dist::Zilla- and/or Pod::Weaver plugins. Any additional steps required beyond
that are considered a bug and can be reported to me.
=head1 COPYRIGHT AND LICENSE
This software is copyright (c) 2025 by perlancar <perlancar@cpan.org>.
This is free software; you can redistribute it and/or modify it under
the same terms as the Perl 5 programming language system itself.
=head1 BUGS
Please report any bugs or feature requests on the bugtracker website L<https://rt.cpan.org/Public/Dist/Display.html?Name=Text-ANSITable>
When submitting a bug or request, please include a test-file or a
patch to an existing test-file that illustrates the bug or desired
feature.
=cut