NAME
HTML::Lint::Pluggable - plugin system for HTML::Lint
VERSION
This document describes HTML::Lint::Pluggable version 0.01.
SYNOPSIS
use HTML::Lint::Pluggable;
my $lint = HTML::Lint::Pluggable->new;
$lint->only_types( HTML::Lint::Error::STRUCTURE );
$lint->load_plugins(qw/HTML5/);
$lint->parse( $data );
$lint->parse_file( $filename );
my $error_count = $lint->errors;
foreach my $error ( $lint->errors ) {
print $error->as_string, "\n";
}
DESCRIPTION
HTML::Lint::Pluggable adds plugin system for HTML::Lint.
WHY CREATED THIS MODULE?
HTML::Lint is useful. But, HTML::Lint can interpret *only* for rules of
HTML4. and, HTML::Lint gives an error of "Character char should be
written as entity" for such as for multi-byte characters. However, you
are often no problem if they are properly encoded.
These problems can be solved easily to facilitate the various hooks for
HTML::Lint.
INTERFACE
Methods
`$lint->load_plugin($module_name[, \%config])'
This method loads plugin for the instance.
$module_name: package name of the plugin. You can write it as two form
like DBIx::Class:
$lint->load_plugin("HTML5"); # => loads HTML::Lint::Pluggable::HTML5
If you want to load a plugin in your own name space, use '+' character
before package name like following:
$lint->load_plugin("+MyApp::Plugin::XHTML"); # => loads MyApp::Plugin::XHTML
`$lint->load_plugins($module_name[, \%config ], ...)'
Load multiple plugins at one time.
$lint->load_plugins(
qw/HTML5/,
WhiteList => +{
rule => +{
'attr-unknown' => sub {
my $param = shift;
if ($param->{tag} =~ /input|textarea/ && $param->{attr} eq 'istyle') {
return 1;
}
else {
return 0;
}
},
}
}
); # => loads HTML::Lint::Pluggable::HTML5, HTML::Lint::Pluggable::WhiteList
this code is same as:
$lint->load_plugin('HTML5'); # => loads HTML::Lint::Pluggable::HTML5
$lint->load_plugin(WhiteList => +{
rule => +{
'attr-unknown' => sub {
my $param = shift;
if ($param->{tag} =~ /input|textarea/ && $param->{attr} eq 'istyle') {
return 1;
}
else {
return 0;
}
},
}
}); # => loads HTML::Lint::Pluggable::WhiteList
DEPENDENCIES
Perl 5.8.1 or later.
BUGS
All complex software has bugs lurking in it, and this module is no
exception. If you find a bug please either email me, or add the bug to
cpan-RT.
SEE ALSO
HTML::Lint
AUTHOR
Kenta Sato
LICENSE AND COPYRIGHT
Copyright (c) 2012, Kenta Sato. All rights reserved.
This library is free software; you can redistribute it and/or modify it
under the same terms as Perl itself.