=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 METHODS L inherits all methods from L and implements the following new ones. =head2 C $plugin->register; Register plugin in L application. A register time, several options may be supplied: =over =item * C<< toggle_button => [0/1] >> specifies whether a "Toggle Line Numbers" button (see below) will be created by default. Default is false. =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. =back =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: =over =item * C<< line_numbers => [0/1] >> specifies if line numbers should be generated =back In the case of a file, the contents are placed in a C<<
>> tag, and there are several additional options =over =item * C<< id => 'string' >> specifies the C to be given to the encompassing C<<
>> tag =item * C<< toggle_button => [0/1] >> specifies if a button should be created to toggle the line numbers. If given C will be forced and if not specified an C will be generated. The C handler is C from the C javascript library. C may also be specified at register time to set the default. =back =head2 C Holds the active instance of L. =head1 STATIC FILES These bundled files are added to your static files paths. =head2 C %= javascript '/ppi.js' Returns a Javascript snippet useful when using L. =head2 C %= stylesheet '/ppi.css' Returns a CSS snippet for coloring the L generated HTML. Also provides a background for the code blocks. =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.