NAME
Text::Table::HTML - Generate HTML table
VERSION
This document describes version 0.011 of Text::Table::HTML (from Perl
distribution Text-Table-HTML), released on 2024-06-13.
SYNOPSIS
use Text::Table::HTML;
my $rows = [
# header row
['Name', 'Rank', 'Serial'],
# rows
['alice', 'pvt', '123<456>'],
['bob', 'cpl', '98765321'],
['carol', 'brig gen', '8745'],
];
print Text::Table::HTML::table(rows => $rows, header_row => 1);
DESCRIPTION
This module provides a single function, "table", which formats a
two-dimensional array of data as HTML table. Its interface was first
modelled after Text::Table::Tiny 0.03.
The example shown in the SYNOPSIS generates the following table:
Name | Rank | Serial |
alice | pvt | 123<456> |
bob | cpl | 98765321 |
carol | brig gen | 8745 |
COMPATIBILITY NOTES WITH TEXT::TABLE::TINY
In "Text::Table::HTML", "header_row" is an integer instead of boolean.
It supports multiple header rows.
Cells in "rows" can be hashrefs instead of scalars.
FUNCTIONS
table(%params) => str
OPTIONS
The "table" function understands these arguments, which are passed as a
hash.
* rows
Required. Array of array of (scalars or hashrefs). One or more rows
of data, where each row is an array reference. Each array element is
a string (cell content) or hashref (with key "text" to contain the
cell text or "raw_html" to contain the cell's raw HTML which won't
be escaped further), and optionally other cell and HTML attributes:
"align", "bottom_border", "colspan", "html_class", "html_element",
"html_headers", "html_id", "html_scope", "html_style", "rowspan" ).
The "html_element" attribute specifies the name of the HTML element
to use for that cell. It defaults to "th" for header rows and "td"
for data rows.
If the "bottom_border" attribute is set, the row element will have a
class attribute of "has_bottom_border".
For example,
header_row => 1,
rows =>
[ [ ' ', 'January', 'December' ],
[ { html_element => 'th', text => 'Boots' } , 20, 30 ],
[ { html_element => 'th', text => 'Frocks' } , 40, 50 ],
]
generates a table where each entry in the first row is a header
element, and the first entry in subsequent rows is an element.
* caption
Optional. Str. If set, will add an HTML "" element to set
the table caption.
* header_row
Optional. Integer. Default 0. Whether we should add header row(s)
(rows inside "" instead of ""). Support multiple
header rows; you can set this argument to an integer larger than 1.
* footer_row
Optional. Integer. Default 0. Whether we should add footer row(s)
(rows inside "" instead of ""). Supports multiple
footer rows.
* If the footer rows are found immediately after the header rows
(if any) in the "rows" array, set "footer_row" to the number of
rows.
* If the footer rows are the last rows in "rows", set "footer_row"
to the *negative* number of rows.
* separate_rows
Boolean. Optional. Default 0. If set to true is equivalent to
setting the "bottom_border" attribute for each row.
* html_colgroup
Optional. An array of scalars or hashes which define a "colgroup"
block.
The array should contain one entry per column or per span of
columns. Each entry will result in a new "col" element, with the
following mapping:
* undefined
If an entry is "undef",then an empty "col" element will be
added.
* hash
A hash is translated into element attributes named after its
keys.
Empty hashes result in an empty "col" element.
* scalars
A scalar must be a string containig a complete specification of
an attribute, and is inserted verbatim into the element.
For example,
html_colgroup => [ undef, {}, q{span="2"}, { class => 'batman' } ]
results in
* html_attr
Optional. Hash. The hash entries are added as attributes to the
"table" HTML element.
* html_id
Optional. Scalar. The *table* element's *id* attribute.
* html_class
Optional. Scalar. The *table* element's *class* attribute.
* html_style
Optional. Scalar. The *table* element's *style* attribute.
HOMEPAGE
Please visit the project's homepage at
.
SOURCE
Source repository is at
.
SEE ALSO
Text::Table::HTML::DataTables
Text::Table::Any
Bencher::Scenario::TextTableModules
AUTHOR
perlancar
CONTRIBUTOR
Diab Jerius
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 Dist::Zilla,
Dist::Zilla::PluginBundle::Author::PERLANCAR,
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.
COPYRIGHT AND LICENSE
This software is copyright (c) 2024, 2023, 2022, 2021, 2017, 2016 by
perlancar .
This is free software; you can redistribute it and/or modify it under
the same terms as the Perl 5 programming language system itself.
BUGS
Please report any bugs or feature requests on the bugtracker website
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.