NAME¶
Wiki::Toolkit::Formatter::Multiple - Allows a Wiki::Toolkit wiki to use more
than one formatter.
DESCRIPTION¶
A "dummy" formatter for Wiki::Toolkit. Passes methods through to other
Wiki::Toolkit formatters, depending on supplied metadata.
SYNOPSIS¶
use Wiki::Toolkit::Formatter::Multiple;
use Wiki::Toolkit::Formatter::Pod;
use Wiki::Toolkit::Formatter::UseMod;
my $pod_fmtr = Wiki::Toolkit::Formatter::Pod->new(
node_prefix => "wiki.cgi?node=",
);
my $usemod_fmtr = Wiki::Toolkit::Formatter::UseMod->new(
node_prefix => "wiki.cgi?node=",
extended_links => 1,
allowed_tags => [ qw( p b i div br ) ],
);
my $formatter = Wiki::Toolkit::Formatter::Multiple->new(
documentation => $pod_fmtr,
discussion => $usemod_fmtr,
_DEFAULT => $usemod_fmtr,
);
my $wiki = Wiki::Toolkit->new( store => ...,
formatter => $formatter );
my $output = $wiki->format( "This is some discussion.",
{ formatter => "discussion" } );
METHODS¶
- new
-
my $formatter = Wiki::Toolkit::Formatter::Multiple->new(
label_1 => Formatter1->new( ... ),
label_2 => Formatter2->new( ... ),
_DEFAULT => Wiki::Toolkit::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 a "formatter"
stored in its metadata. The "_DEFAULT" formatter, if not
supplied to "->new", will default to the very basic
Wiki::Toolkit::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 Wiki::Toolkit object, the wiki
object passes itself in as the second parameter.
- find_internal_links( $raw, $metadata
)
SEE ALSO¶
Wiki::Toolkit
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.