NAME

CSS::Inliner - Library for converting CSS <style> blocks to inline styles.

SYNOPSIS

use Inliner;

my $inliner = new Inliner();

$inliner->read_file({filename => 'myfile.html'});

print $inliner->inlinify();

DESCRIPTION

Library for converting CSS style blocks into inline styles in an HTML document. Specifically this is intended for the ease of generating HTML emails. This is useful as even in 2009 Gmail and Hotmail don't support top level <style> declarations.

Methods implemented are:

new()

Instantiates the Inliner object. Sets up class variables that are used during file parsing/processing.

read_file( params )

Opens and reads an HTML file that supposedly contains both HTML and a style declaration. It subsequently calls the read() method automatically.

This method requires you to pass in a params hash that contains a filename argument. For example:

$self->read_file({filename => 'myfile.html'});

read( params )

Reads html data and parses it. The intermediate data is stored in class variables.

The <style> block is ripped out of the html here, and stored separately. Class/ID/Names used in the markup are left alone.

This method requires you to pass in a params hash that contains scalar html data. For example:

$self->read({html => $html});

inlinify()

Processes the html data that was entered through either 'read' or 'read_file', returns a scalar that contains a composite chunk of html that has inline styles instead of a top level <style> declaration.

Note that the class/id/names that are used within the markup are left alone, but aren't no-ops as there is no <style> block in the resulting html.

Sponsor

This code has been developed under sponsorship of MailerMailer LLC, http://www.mailermailer.com/

AUTHOR

Kevin Kamel <kamelkev@mailermailer.com>

LICENSE

This module is Copyright 2009 Khera Communications, Inc. It is licensed under the same terms as Perl itself.