Provided by: libwiki-toolkit-plugin-categoriser-perl_0.08-1_all bug

NAME

       Wiki::Toolkit::Plugin::Categoriser - Category management for Wiki::Toolkit.

DESCRIPTION

       Uses node metadata to build a model of how nodes are related to each other in terms of
       categories.

SYNOPSIS

         use Wiki::Toolkit;
         use Wiki::Toolkit::Plugin::Categoriser;

         my $wiki = Wiki::Toolkit->new( ... );
         $wiki->write_node( "Red Lion", "nice beer", $checksum,
                            { category => [ "Pubs", "Pub Food" ] }
                          ) or die "Can't write node";
         $wiki->write_node( "Holborn Station", "busy at peak times", $checksum,
                            { category => "Tube Station" }
                          ) or die "Can't write node";

         my $categoriser = Wiki::Toolkit::Plugin::Categoriser->new;
         $wiki->register_plugin( plugin => $categoriser );

         my $isa_pub = $categoriser->in_category( category => "Pubs",
                                                  node     => "Red Lion" );
         my @categories = $categoriser->categories( node => "Holborn Station" );

METHODS

       new
             my $categoriser = Wiki::Toolkit::Plugin::Categoriser->new;
             $wiki->register_plugin( plugin => $categoriser );

       in_category
             my $isa_pub = $categoriser->in_category( category => "Pubs",
                                                      node     => "Red Lion" );

           Returns true if the node is in the category, and false otherwise. Note that this is
           case-insensitive, so "Pubs" is the same category as "pubs". I might do something to
           make it plural-insensitive at some point too.

       subcategories
             $wiki->write_node( "Category Pub Food", "mmm food", $checksum,
                                { category => [ "Pubs", "Food", "Category" ] }
                              ) or die "Can't write node";
             my @subcats = $categoriser->subcategories( category => "Pubs" );
             # will return ( "Pub Food" )

             # Or if you prefer CamelCase node names:
             $wiki->write_node( "CategoryPubFood", "mmm food", $checksum,
                                { category => [ "Pubs", "Food", "Category" ] }
                              ) or die "Can't write node";
             my @subcats = $categoriser->subcategories( category => "Pubs" );
             # will return ( "PubFood" )

           To add a subcategory "Foo" to a given category "Bar", write a node called any one of
           "Foo", "Category Foo", or "CategoryFoo" with metadata indicating that it's in
           categories "Bar" and "Category".

           Yes, this pays specific attention to the Wiki convention of defining categories by
           prefacing the category name with "Category" and creating a node by that name. If
           different behaviour is required we should probably implement it using an optional
           argument in the constructor.

       categories
             my @cats = $categoriser->categories( node => "Holborn Station" );

           Returns an array of category names in no particular order.

SEE ALSO

       ·   Wiki::Toolkit

       ·   Wiki::Toolkit::Plugin

AUTHOR

       Kake Pugh (kake@earth.li).  The Wiki::Toolkit team (http://www.wiki-toolkit.org/)

COPYRIGHT

            Copyright (C) 2003-4 Kake Pugh.  All Rights Reserved.
            Copyright (C) 2006-2009 the Wiki::Toolkit team. All Rights Reserved.

       This module is free software; you can redistribute it and/or modify it under the same
       terms as Perl itself.