=head1 NAME
-Catalyst::Manual::Component - Reuseable components for Catalyst applications
+Catalyst::Manual::Components - Reuseable components for Catalyst applications
=head1 DESCRIPTION
plugins may be deprecated, or, conversely, may now part of core
L<Catalyst>. Be sure to check the Catalyst:: and CatalystX:: namespaces
for additional components, and consult the mailing list (
-L<http://dev.catalyst.perl.org/wiki/Support> ) for advice on the current
+L<http://wiki.catalystframework.org/wiki/Support> ) for advice on the current
status or preferred use of your chosen plugin/framework.
=head1 PLUGINS
+Take care with plugins! In general with a plugin ask "should this be
+acting globally on my application?". If not it should be a
+Controller Role (e.g. see L<Catalyst::TraitFor::Controller::reCAPTCHA>.
+
=head2 L<Catalyst::Plugin::Account::AutoDiscovery>
Provides Account Auto-Discovery for Catalyst.
=head2 L<Catalyst::Plugin::Acme::Scramble>
-Implements a potent meme about how easily we can read scrambled text if
-the first and last letters remain constant. Operates on text/plain and
-text/html served by your Catalyst application.
+Implements a demonstration showing how easily fluent speakers can read
+scrambled text if the first and last letters remain constant but the middle
+. Operates on text/plain and text/html served by your Catalyst application.
+This should really be a controller role, or even a View these days.
=head2 L<Catalyst::Plugin::Alarm>
C<realms>, so that you can authenticate users in different ways in different
parts of your application.
-This, however, has involved deprecated all classes in the
-C<Catalyst::Plugin::Authentication::Credential::XXX> and
-C<Catalyst::Plugin::Authentication::Store::XXX> namespaces.
+This, however, has involved deprecating all classes in the
+C<Catalyst::Plugin::Authentication::Credential::> and
+C<Catalyst::Plugin::Authentication::Store::> namespaces.
These plugins are still usable, but they have mostly been replaced with
new modules in the new namespace which will work together.
=head4 L<Catalyst::Authentication::Store::DBI>
-Allows you to use a plain L<DBI> database connection to identify users.
+Allows you to use a plain L<DBI> database connection to identify users.
=head4 L<Catalyst::Authentication::Store::Htpasswd>
=head4 L<Catalyst::Authentication::Store::Minimal>
Lets you create a very quick and dirty user database in your application's
-config hash. Great for getting up and running quickly.
+config hash. Great for testing or getting up and running quickly.
=head4 L<Catalyst::Authentication::Store::Null>
=head2 L<Catalyst::Plugin::AutoSession>
+L<Catalyst::Plugin::AutoSession> enables specified request parameters
+to generate session variables.
+
=head2 L<Catalyst::Plugin::Browser>
Extends L<Catalyst::Request> by adding the capability of browser
=head2 L<Catalyst::Plugin::Charsets::Japanese>
+Provides specific charset handlers for the Japanese charsets.
+
=head2 L<Catalyst::Plugin::Compress::Bzip2>
=head2 L<Catalyst::Plugin::Compress::Deflate>
=head2 L<Catalyst::Plugin::Dumper>
-=head2 L<Catalyst::Plugin::Email>
-
-Sends email with L<Email::Send> and L<Email::MIME::Creator>.
-
=head2 L<Catalyst::Plugin::Email::Japanese>
=head2 L<Catalyst::Plugin::Email::Page>
-=head2 L<Catalyst::Plugin::EmailValid>
-
=head2 L<Catalyst::Plugin::FillInForm>
-A plugin based on C<HTML::FillInForm>, which describes itself as a module
+A plugin based on L<HTML::FillInForm>, which describes itself as a module
to automatically insert data from a previous HTML form into the HTML input,
-textarea, radio buttons, checkboxes, and select tags. C<HTML::FillInForm>
-is a subclass of C<HTML::Parser> and uses it to parse the HTML and insert
+textarea, radio buttons, checkboxes, and select tags. L<HTML::FillInForm>
+is a subclass of L<HTML::Parser> and uses it to parse the HTML and insert
the values into the form tags.
=head2 L<Catalyst::Plugin::Flavour>
=head2 L<Catalyst::Plugin::Redirect>
+Allows for easy redirecting with the Catalyst app.
+
=head2 L<Catalyst::Plugin::RequestToken>
=head2 L<Catalyst::Plugin::RequireSSL>
An interface to the L<HTML::SuperForm> module, enabling easy HTML form
creation.
-=head2 L<Catalyst::Plugin::Unicode>
+=head2 L<Catalyst::Plugin::Unicode::Encoding>
Provides a Unicode-aware Catalyst. On request, it decodes all params from
UTF-8 octets into a sequence of logical characters. On response, it encodes
the body into UTF-8 octets.
-=head2 L<Catalyst::Plugin::Unicode::Encoding>
+=head2 L<Catalyst::Plugin::Unicode>
+
+Disrecommended plugin which tries to autodetect the uft8ness of the output
+and do the correct thing. This may work in some cases, but if it helps,
+you've already painted yourself into a corner - try to avoid!
=head2 L<Catalyst::Plugin::Upload::Basename>
=head2 L<Catalyst::Plugin::Upload::MD5>
+Computes the MD5 message digest of uploaded files.
+
=head2 L<Catalyst::Plugin::Upload::MIME>
=head2 L<Catalyst::Plugin::UploadProgress>
=head2 L<Catalyst::Controller::HTML::FormFu>
-Catalyst integration for <HTML::FormFu>.
+Catalyst integration for L<HTML::FormFu>.
=head1 MODELS
=head2 L<Catalyst::Model::CDBI>
-The C<Class::DBI> (CDBI) model class. It is built on top of
-C<Class::DBI::Loader>, which automates the definition of C<Class::DBI>
+The L<Class::DBI> (CDBI) model class. It is built on top of
+L<Class::DBI::Loader>, which automates the definition of L<Class::DBI>
sub-classes by scanning the underlying table schemas, setting up columns
and primary keys.
=head2 L<Catalyst::Model::CDBI::Plain>
-A neutral interface to the C<Class::DBI> module which does not attempt
+A neutral interface to the L<Class::DBI> module which does not attempt
to automate table setup. It allows the user to manually set up
-C<Class::DBI> classes, either by doing so within the Catalyst model
-classes themselves, or by inheriting from existing C<Class::DBI>
+L<Class::DBI> classes, either by doing so within the Catalyst model
+classes themselves, or by inheriting from existing L<Class::DBI>
classes.
=head2 L<Catalyst::Model::DBIC::Schema>