I'm using CGI::Kwiki in a couple of projects. In one on them, I needed a way to use the POD format to compose pages. I came up with this formatter. To use it, put the module in your wiki directory, and change config.yaml in this way:
The code reflects my choices: everything that's between PODPOD and ---- is going to be interpreted as POD, the rest is threated as wiki-language. The code should be easily customizable, though.formatter_class: PodFormatter
Update: Minor refactoring
use strict; use warnings; package MyFormatter; use base qw/CGI::Kwiki::Formatter/; use Pod::POM; use Pod::POM::View::HTML; sub _wiki2html { my ($self, $text) = @_; my $array = []; push @$array, $text; for my $method ($self->process_order) { $array = $self->dispatch($array, $method); } return $self->combine_chunks( $array ); } sub process { my ($self, $wiki_text) = @_; if ($wiki_text =~ /^PODPOD/ ) { my ($pod_part, $wiki_part) = $wiki_text =~ /^PODPOD(.*?)^(---- +.*)/sm; $pod_part = "=over 4\n\n" . $pod_part . "\n\n=back\n\n"; my $parser = Pod::POM->new(); my $pom = $parser->parse_text( $pod_part ); return Pod::POM::View::HTML->print( $pom ) . $self->_wiki2html( $wiki_part ); } else { return $self->_wiki2html( $wiki_text ); } } 1;
|
---|
Replies are listed 'Best First'. | |
---|---|
Re: CGI::Kwiki PodFormatter
by jmcnamara (Monsignor) on Aug 12, 2003 at 22:39 UTC |
Back to
Cool Uses for Perl