=head1 NAME
Mojolicious::Plugin::PPI - Mojolicious Plugin for Rendering Perl Code Using PPI
=head1 SYNOPSIS
# Mojolicious
$self->plugin('PPI');
# Mojolicious::Lite
plugin 'PPI';
# In your template
Perl is as simple as .
=head1 DESCRIPTION
L is a L plugin which adds Perl syntax highlighting via L and L. Perl is notoriously hard to properly syntax highlight, but since L is made especially for parsing Perl this plugin can help you show off your Perl scripts in your L webapp.
=head1 ATTRIBUTES
L inherits all methods from L and implements the following new ones.
=over
=item *
C<< line_numbers => [0/1] >> specifies if line numbers should be generated. Defaults to C<1> for file-based snippets, however C<0> is used for an inline snipppet unless explicitly overridden in the helper arguments.
=item *
C<< no_check_file => [0/1] >> specifies if a file check should be performed. Default C<1>.
=item *
C<< src_folder => 'directory' >> specifies a folder where input files will be found. When specified, if the directory is not found, a warning is issued, but not fatally. This functionality is not (currently) available for per-file alteration, so only use if all files will be in this folder (or subfolder). Remeber, if this option is not specified, a full or relative path may be passed to L.
=item *
C<< style => '.ppi-code { some: style; }' >> a string of overall style sheet to be applied via the C helper.
=item *
C<< class_style => { class => 'string color', other_class => { style => 'pairs' } } >> This hashref's keys are individual element style definitions. If the value is a string, it is used as the value of the color attribute. If the value is another hashref, it is converted into style definitions.
=back
=head1 METHODS
L inherits all methods from L and implements the following new ones.
=head2 C
$plugin->register;
Register plugin in L application. At register time, key-value pairs for the plugin attributes may be supplied.
=head1 HELPERS
L provides these helpers:
=head2 C
%== ppi 'my $code = "highlighted";'
%== ppi 'file.pl'
Returns HTML form of Perl snippet or file. The behavior may be slightly different in each case. If the argument is the name of a file that exists, it will be loaded and used. If not the string will be interpreted as an inline snippet. In either form, the call to C may take the additional option:
Additional key-value pairs may be passed which override the object's defaults. Most attributes are available (except: C for now) and the additional key C lets you override the default choice of display inline vs block (by string vs file respectively).
=head2 C
Injects a generated CSS style into the page, using style properties defined in the plugin attributes.
=head1 SEE ALSO
L, L, L
L, L
=head1 SOURCE REPOSITORY
L
=head1 AUTHOR
Joel Berger, Ejoel.a.berger@gmail.comE
=head1 COPYRIGHT AND LICENSE
Copyright (C) 2011-2013 by Joel Berger
This library is free software; you can redistribute it and/or modify
it under the same terms as Perl itself.