logo
Free, unlimited AI code reviews that run on commit
git-lrc git-lrc GitHub Install Now We'd appreciate a star git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt

Wiki::Toolkit::Formatter::Multiple - Allows a Wiki::Toolkit wiki to use more than one formatter.

Author

       Kake Pugh <kake@earth.li>

Description

       A "dummy" formatter for Wiki::Toolkit.  Passes methods through to other Wiki::Toolkit formatters,
       depending on supplied metadata.

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)

Name

       Wiki::Toolkit::Formatter::Multiple - Allows a Wiki::Toolkit wiki to use more than one formatter.

See Also

       Wiki::Toolkit

Support

       Bug reports, questions and feature requests should go to cgi-wiki-dev@earth.li

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" } );

See Also