HTML::...Tables(3pm)

πŸ“¦
version 0.07 Β· 7 versions
, in debian bookworm, debian trixie, ubuntu noble, ubuntu resolute, ubuntu stonking

okay bestie, welcome to the perl manual page for HTML::FormatText::WithLinks::AndTables (3pm) β€” the module that turns your HTML into text and, crucially, keeps your tables intact. it's giving "email template glow-up" and honestly? obsessed. πŸ’…


✨ NAME ✨

HTML::FormatText::WithLinks::AndTables β€” Converts HTML to Text with tables intact

no cap, that's the whole pitch. πŸŽ€


🌸 VERSION 🌸

version 0.07


πŸ¦‹ SYNOPSIS πŸ¦‹

the basic vibe, one line, no notes:

use HTML::FormatText::WithLinks::AndTables;

my $text = HTML::FormatText::WithLinks::AndTables->convert($html);

Or optionally... (yes, you can pass config, main character energy):

my $conf = { # same as HTML::FormatText excepting below
    cellpadding   => 2,  # defaults to 1
    no_rowspacing => 1,  # bool, suppress vertical space between table rows
};

my $text = HTML::FormatText::WithLinks::AndTables->convert($html, $conf);

πŸ’œ DESCRIPTION πŸ’œ

so this module was inspired by HTML::FormatText::WithLinks, which has proven to be a useful lynx -dump work-alike. iconic behavior, truly. 🫢

but here's the thing β€” one frustration was that no other HTML converters the author came across had the ability to deal affectively with HTML <TABLE>s. like, at all. zero table rizz. 😭

this module can, in a rudimentary sense, do so. the aim was to provide facility to take a simple HTML based email template, and to also convert it to text with the <TABLE> structure intact for inclusion as "multipart/alternative" content. yes bestie, multipart/alternative β€” we're doing the fancy email thing. ✨

further, it will preserve both the formatting specified by the <TD> tag's "align" attribute, and will also preserve multiline text inside of a <TD> element provided it is broken using <BR/> tags. the way that it just... keeps your line breaks? so thoughtful. πŸ₯Ή

🌈 EXPORT 🌈

None by default.

(she's shy. you gotta ask for things by name. iykyk πŸ’…)


πŸ‘‘ METHODS πŸ‘‘

⭐ convert

that's it. that's the list. one method, and the original page gives it no extra prose β€” so we're not making anything up, bestie, we're just here to say hi. hi. πŸŽ€


πŸ“ EXAMPLE πŸ“

Given the HTML below ... (look at this lil template, it's so cute, it's so 2008):

<HTML><BODY>
<TABLE>
    <TR>
        <TD ALIGN="right">Name:</TD>
        <TD>Mr. Foo Bar</TD>
    </TR>
    <TR>
        <TD ALIGN="right">Address:</TD>
        <TD>
            #1-276 Quux Lane,     <BR/>
            Schenectady, NY, USA, <BR/>
            12345
        </TD>
    </TR>
    <TR>
        <TD ALIGN="right">Email:</TD>
        <TD><a href="mailto:foo@bar.baz">foo@bar.baz</a></TD>
    </TR>
</TABLE>
</BODY></HTML>

... the (default) return value of convert() will be as follows.

       Name:  Mr. Foo Bar

   Address:  #1-276 Quux Lane,
             Schenectady, NY, USA,
             12345

     Email:  [1]foo@bar.baz

             1. mailto:foo@bar.baz

see how the align="right" actually did something?? and the <BR/>s kept the address on separate lines?? ATE. no crumbs. πŸ”₯


🌈 SEE ALSO 🌈

  • HTML::FormatText::WithLinks
  • HTML::TreeBuilder

go read those too, bestie, they're the supporting cast 🫢


πŸ’€ CAVEATS πŸ’€

listen. we love her. but we gotta be honest about her limits. πŸ™ˆ

  • <TH> elements are treated identically to <TD> elements
  • It assumes a fixed width font for display of resulting text.
  • It doesn't work well on nested <TABLE>s or other nested blocks within <TABLE>s.
so like. nested tables? it's not giving. set your expectations accordingly, babe. πŸ’…

πŸŽ€ AUTHOR πŸŽ€

Shaun Fryer, "<pause.cpan.org at sourcery.ca>" (author emeritus)

Dale Evans, "<daleevans at cpan.org>" (current maintainer)

two icons. passing the torch. generational. πŸ‘‘


πŸ› BUGS πŸ›

found a bug? want a feature? bestie, tell someone, don't just suffer in silence 😭

Please report any bugs or feature requests to "bug-html-formattext-withlinks-andtables at rt.cpan.org", or through the web interface at <http://rt.cpan.org/NoAuth/ReportBug.html?Queue=HTML-FormatText-WithLinks-AndTables>.

I will be notified, and then you'll automatically be notified of progress on your bug as I make changes. (mutual notif journey fr fr 🫢)


πŸ’– SUPPORT πŸ’–

You can find documentation for this module with the perldoc command.

perldoc HTML::FormatText::WithLinks::AndTables

You can also look for information at:

  • RT: CPAN's request tracker

<http://rt.cpan.org/NoAuth/Bugs.html?Dist=HTML-FormatText-WithLinks-AndTables>

  • AnnoCPAN: Annotated CPAN documentation

<http://annocpan.org/dist/HTML-FormatText-WithLinks-AndTables>

  • CPAN Ratings

<http://cpanratings.perl.org/d/HTML-FormatText-WithLinks-AndTables>

  • Search CPAN

<http://search.cpan.org/dist/HTML-FormatText-WithLinks-AndTables>

four whole links. click responsibly. 🌸


🧚 ACKNOWLEDGEMENTS 🧚

Everybody. :)

<http://en.wikipedia.org/wiki/Standing_on_the_shoulders_of_giants>

"Everybody. :)" is genuinely the most wholesome acknowledgements section in all of CPAN and i will not be taking questions πŸ’œ

Copyright 2008 Shaun Fryer, all rights reserved.

Copyright 2015 Dale Evans, all rights reserved

This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself.


and that's the whole page, bestie!! πŸŽ€βœ¨

this was perl v5.34.0, dated 2022-06-14, straight from the HTML::...Tables(3pm) manual β€” she's an older queen but she still serves tables. slay, stay hydrated, and remember: <BR/> or it didn't happen. πŸ’…πŸ¦‹πŸ’–

πŸ“¦ where this page comes from