NAME
CGI::Wiki::Formatter::Multiple - Allows a CGI::Wiki wiki to use more than one formatter.
DESCRIPTION
A "dummy" formatter for CGI::Wiki. Passes methods through to other CGI::Wiki formatters, depending on supplied metadata.
SYNOPSIS
use CGI::Wiki::Formatter::Multiple;
use CGI::Wiki::Formatter::Pod;
use CGI::Wiki::Formatter::UseMod;
my $pod_fmtr = CGI::Wiki::Formatter::Pod->new(
node_prefix => "wiki.cgi?node=",
);
my $usemod_fmtr = CGI::Wiki::Formatter::UseMod->new(
node_prefix => "wiki.cgi?node=",
extended_links => 1,
allowed_tags => [ qw( p b i div br ) ],
);
my $formatter = CGI::Wiki::Formatter::Multiple->new(
documentation => $pod_fmtr,
discussion => $usemod_fmtr,
_DEFAULT => $usemod_fmtr,
);
my $wiki = CGI::Wiki->new( store => ...,
formatter => $formatter );
my $output = $wiki->format( "This is some discussion.",
{ formatter => "discussion" } );
METHODS
- new
-
my $formatter = CGI::Wiki::Formatter::Multiple->new( label_1 => Formatter1->new( ... ), label_2 => Formatter2->new( ... ), _DEFAULT => CGI::Wiki::Formatter::Default->new, );
You may supply as many formatter objects as you wish. They don't have to be of different classes; you may just wish to, for example, permit different HTML tags to be used on different types of pages.
The "labels" supplied as the keys of the parameter hash should be unique. When you write a node, you should store a key-value pair in its metadata where the key is
formatter
and the value is the label of the formatter that should be used to render that node.The
_DEFAULT
label is special - it defines the formatter that will be used for any node that does not have aformatter
stored in its metadata. The_DEFAULT
formatter, if not supplied to->new
, will default to the very basic CGI::Wiki::Formatter::Default. - format( $raw, \%metadata )
-
my $output = $formatter->format( "Here is some text.", undef, { formatter => "discussion" } );
Uses the value of
formatter
given in the metadata to decide which of the formatter objects passed on instantiation to use, then uses it to format the provided rawwikitext.The
undef
second element of the parameter array in the example is there because when this is called from a CGI::Wiki object, the wiki object passes itself in as the second parameter. - find_internal_links( $raw, $metadata )
SEE ALSO
AUTHOR
Kake Pugh <kake@earth.li>
SUPPORT
Bug reports, questions and feature requests should go to cgi-wiki-dev@earth.li
COPYRIGHT
Copyright (C) 2003-4 Kake Pugh. All Rights Reserved.
This module is free software; you can redistribute it and/or modify it under the same terms as Perl itself.