=head1 NAME
-Catalyst::Manual::Component - Reuseable components for Catalyst applications
+Catalyst::Manual::Components - Reuseable components for Catalyst applications
=head1 DESCRIPTION
=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::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
=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>