=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 <%= ppi q{say "Hello World"} %>. =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.