| Kwiki-PerlTidyBlocks documentation | Contained in the Kwiki-PerlTidyBlocks distribution. |
Kwiki::PerlTidyBlocks - Kwiki Perl Tidy Blocks Plugin
Brian Ingerson <ingy@cpan.org>
Copyright (c) 2004. Brian Ingerson. All rights reserved.
This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself.
See http://www.perl.com/perl/misc/Artistic.html
| Kwiki-PerlTidyBlocks documentation | Contained in the Kwiki-PerlTidyBlocks distribution. |
package Kwiki::PerlTidyBlocks; use Kwiki::Plugin -Base; use Kwiki::Installer -Base; our $VERSION = '0.12'; const class_id => 'perl_tidy_blocks'; const css_file => 'perl_tidy_blocks.css'; sub register { my $registry = shift; $registry->add(prerequisite => 'cache'); $registry->add(wafl => perl => 'Kwiki::PerlTidyBlocks::Wafl'); } package Kwiki::PerlTidyBlocks::Wafl; use base 'Spoon::Formatter::WaflBlock'; sub to_html { return join '', qq{<table class="perl_tidy_blocks"><tr><td>\n}, $self->from_cache($self->block_text), qq{</td></tr></table>\n}; } sub from_cache { my $source = shift; $self->hub->cache->process( sub { $self->tidy($source) }, 'perl_tidy_blocks', $source ); } sub tidy { my $source = shift; require Perl::Tidy; my $result; eval { Perl::Tidy::perltidy( source => \$source, destination => \$result, argv => [qw( -q -html -pre -npro )], ); }; $@ ? $source : $result; } package Kwiki::PerlTidyBlocks; __DATA__
__css/perl_tidy_blocks.css__ table.perl_mode pre { background-color: #FFF; } table.perl_mode td { border: 0; } .pd { color: #404080;} /* pod-text */ .c { color: #404080;} /* comment */ .cm { color: #800097;} /* comma */ .co { color: #800097;} /* colon */ .h { color: #804848;} /* here-doc-target */ .hh { color: #800000;} /* here-doc-text */ .q { color: #800000;} /* quote */ .v { color: #800000;} /* v-string */ .i { color: #008080;} /* identifier */ .k { color: #0000FF;} /* keyword */ .n { color: #E02020;} /* numeric */ .m { color: #C00080;} /* subroutine */ .j { color: #C00080;} /* label */ .w { color: #C00080;} /* bareword */ .p { color: #800080;} /* paren */ .s { color: #800080;} /* structure */ .sc { color: #800080;} /* semicolon */ .pu { color: #C44800;} /* punctuation */