=pod

=head1 NAME

Dancer2::Plugin::UnicodeNormalize - normalize incoming Unicode parameters

=head1 VERSION

Version 0.01

=head1 SYNOPSIS

    use Dancer2::Plugin::UnicodeNormalize

=head1 DESCRIPTION

Dancer2::Plugin::UnicodeNormalize normalizes all incoming parameters to a given
normalization form. This is achieved with a before hook, which should run
silently before processing each route. By default, we use Unicode Normalization
Form C - this is usually what you want. Other forms can be selected, see:
L</"CONFIGURATION">.

This plugin was inspired by L<Mojolicious::Plugin::UnicodeNormalize>. For
information on why Unicode Normalization is important, please see:

http://www.perl.com/pub/2012/05/perlunicookbook-unicode-normalization.html
http://www.modernperlbooks.com/mt/2013/11/mojolicious-unicode-normalization-plugin-released.html

=head1 CONFIGURATION

    plugins:
        UnicodeNormalize:
            form: NFC
            exclude:
                - '^/(css|javascripts|images)'

The C<form> parameter is described in L<Unicode::Normalize>. Default is NFC.

The C<exclude> parameter consists of a list of regular expressions to match
routes we do not wish to process parameters for.

=head1 AUTHOR

John Barrett, <john@jbrt.org>

=head1 CONTRIBUTING

http://github.com/jbarrett/Dancer2-Plugin-UnicodeNormalize

All comments and contributions welcome.

=head1 BUGS, SUPPORT

Please direct all requests to http://github.com/jbarrett/Dancer2-Plugin-UnicodeNormalize/issues
or email <john@jbrt.org>.

=head1 COPYRIGHT

Copyright 2013 John Barrett.

=head1 LICENSE

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

=head1 SEE ALSO

L<Dancer2>

L<Unicode::Normalize>

L<Mojolicious::Plugin::UnicodeNormalize>


=cut

