logo
Free, unlimited AI code reviews that run on commit
git-lrc git-lrc GitHub Install Now We'd appreciate a star git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt

HTML::Quoted - extract structure of quoted HTML mail message

Author

       Ruslan.Zakirov <ruz@bestpractical.com>

Description

       Parses and extracts quotation structure out of a HTML message.  Purpose and returned structures are very
       similar to Text::Quoted.

License

       Under the same terms as perl itself.

perl v5.36.0                                       2023-11-01                                  HTML::Quoted(3pm)

Methods

extract
           my $struct = HTML::Quoted->extract( $html );

       Takes a string with HTML and returns array reference. Each element in the array either array or hash. For
       example:

           [
               { 'raw' => 'Hi,' },
               { 'raw' => '<div><br><div>On date X wrote:<br>' },
               [
                    { 'raw' => '<blockquote>' },
                    { 'raw' => 'Hello,' },
                    { 'raw' => '<div>How are you?</div>' },
                    { 'raw' => '</blockquote>' }
               ],
               ...
           ]

       Hashes represent a part of the html. The following keys are meaningful at the moment:

       •   raw - raw HTML

       •   quoter_raw,  quoter  -  raw  and  decoded  (entities  are converted) quoter if block is prefixed with
           quoting characters

   combine_hunks
         my $html = HTML::Quoted->combine_hunks( $arrayref_of_hunks );

       Takes the output of "extract" and turns it back into HTML.

Name

       HTML::Quoted - extract structure of quoted HTML mail message

Supported Formats

       Variouse MUAs use quite different approaches for quoting in mails.

       Some use blockquote tag and it's quite easy to parse.

       Some wrap text into p tags and add '>' in the beginning of the paragraphs.

       Things gettign messier when it's an HTML reply on plain text mail thread.

       If youfoundformat that is not supported then file a bug report via rt.cpan.org with as short as
       possible example. Testfile is even better. Test file with patch is the best. Not obviouse patches
       without tests suck.

Synopsis

           use HTML::Quoted;
           my $html = '...';
           my $struct = HTML::Quoted->extract( $html );

See Also