The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.
=head1 NAME

HTML2XHTML - Wrapper to command-line program that converts from HTML 3.x/4.x to XHTML 1.0

=head1 SYNOPSIS

use HTML2XHTML; 

OR

require HTML2XHTML;

To convert an HTML file (and no external CSS file) to XHTML:  

=over 5 

=item B<Win32 users:

=back

	my $foo = new HTML2XHTML(encoding => 'UTF-8', file_name => '..//foo//foo.html');

	my $foo = new HTML2XHTML(encoding => 'ISO 8859-1', file => '..\foo\foo.html');

	my $foo = new HTML2XHTML(encoding => 'ISO 8859-1', file => 'C://My Documents//foo//foo.html');

=over 5 

=item B<Non-Win32 Users: 

=back

	my $foo = new HTML2XHTML(encoding => 'ISO 8859-1', file_name => '../foo/foo.html');

To convert HTML files and external CSS files to XHTML:

	my $foo = new HTML2XHTML(encoding => 'UTF-16', file_name => 'foo.html, foo.css, foo2.html, foo3.html, bar.css');

To convert a directory to XHTML:

	my $foo = new HTML2XHTML(encoding => 'UTF-8', dir => '../foo');

To convert the current directory of HTML files and external CSS files to XHTML:

	my $foo = new HTML2XHTML(encoding => 'UTF-8', dir => 'current');

=head1 DESCRIPTION

HTML2XHTML is my first attempt at writing a module and distribution.  It is a pure Perl implementation written to convert an 
HTML 4.01 Transitional page to XHTML 1.0 Strict (there is no check for usage of deprecated tags).  I had been writing for
almost a year now validating/conforming HTML 4.01 code, but had never bothered to go the extra steps to use XHTML.  This 
module also supports converting external CSS documents and a directory of HTML and/or CSS documents.

There is support for approximately 75 HTML 3.x/4.x tags, including tags that have been deprecated in versions 3.x or
4.x (to maintain compatibility with the current document structure).  In the next version, the deprecated tags may be 
replaced programmatically with the updated tag or module to (really) conform to XHTML 1.0 standards.

The original script was designed to be ran from the command-line with option flags for either a directory or files to be 
converted, and 2 days after completing the original, it was decided to create a module to act as a wrapper for the command-line
program.  

For those interested in command-line options, see below:

You can specify a whole directory to be converted either by putting 'dir' or 'directory' after the name of the 
command-line script followed by the name of the directory.

	perl convert_xhtml2.pl encoding UTF-8 dir|directory [relative|absolute directory path] foo

	perl convert_xhtml2.pl encoding UTF-8 dir current

	perl convert_xhtml2.pl encoding UTF-8 directory ../foo/

You can also specify an HTML document, CSS document, or multiple documents (including the directory path if not in the
same directory as the program) to convert followed by commas.

	perl convert_xhtml2.pl encoding ISO 8859-1 [relative|absolute directory path] foo.html

	perl convert_xhtml2.pl encoding ISO 8859-1 ../bar/foo.html, bar.css

=head1 METHODS

my $foo = new HTML2XHTML(encoding => 'ISO 8859-1', file_name => '..//foo//foo.html');

This method invokes the command-line program with the options passed.  The options can either be a list of file names
(either absolute or relative path) separated by commas, or the name of a directory.  

For files, there is an abbreviated form of the key, which is 'file', if you do not wish to write 'file_name'.

=head2 PREREQUISITES

This module requires Cwd and Perl 5.001 or later.

=head2 EXPORT

None by default.

=head1 SEE ALSO

L<http://www.w3.org/TR/xhtml1/> XHTML 1.0 The Extensible HyperText Markup Language (Second Edition),

L<http://search.cpan.org/~kwilliams/PathTools-3.23/Cwd.pm> Cwd

L<http://en.wikipedia.org/wiki/Character_encoding> (Character) Encoding

=head1 AUTHOR

Obiora Embry

=head1 COPYRIGHT AND LICENSE

Copyright (C) 2006-2007 by Obiora Embry.

This library is free software; you can redistribute it and/or modify
it under the same terms as Perl itself, either Perl version 5.8.7 or,
at your option, any later version of Perl 5 you may have available.


=cut