NAME

HTML::Split - Splitting HTML by number of characters with keeping DOM structure.

SYNOPSIS

  use HTML::Split;

  my $html = <<HTML;
  <div class="pkg">
  <h1>HTML::Split</h1>
  <p>Splitting HTML by number of characters.</p>
  </div>
  HTML;

  my @pages = HTML::Split->split(html => $html, length => 50);

  # $pages[0] <div class="pkg">
  #           <h1>HTML::Split</h1>
  #           <p>Splittin</p></div>
  # $pages[1] <div class="pkg">
  #           <p>g HTML by number of characters.</p></div>

DESCRIPTION

HTML::Split is the module to split HTML by number of characters with keeping DOM structure.

In some mobile devices, mainly cell-phones, because the data size that can be acquired with HTTP is limited, it is necessary to split HTML.

This module provide the method of splitting HTML without destroying the DOM tree for such devices.

CLASS METHODS

split

Split HTML text by number of characters. It can accept below parameters with hash.

html

HTML string.

length

The length (characters) per pages.

extend_tags

Defining regexp of description that can not split. For example, your original markup to show emoticon '[E:foo]':

  extend_tags => [
      {
          full  => qr/\[E:[\w\-]+\]/,
          begin => qr/\[[^\]]*?/,
          end   => qr/[^\]]+\]/,
      },
  ]
  • full

    Completely matching pattern of your original markup.

  • begin

    The beginning pattern to find your original markup.

  • end

    The ending pattern of your original markup.

new

Create an instance of HTML::Split. Accept same arguments as split method.

INSTANCE METHODS

current_page

Set/Get current page.

total_pages

Return the number of total pages.

next_page

Return the next page number. If the next page doesn't exists, return undef.

prev_page

Return the previous page number. If the previous page doesn't exists, return undef.

text

Return the text of current page.

AUTHOR

Hiroshi Sakai <ziguzagu@cpan.org>

LICENSE

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