-
-
25 Oct 2009 16:30:21 UTC
- Distribution: Wiki-Toolkit-Plugin-Categoriser
- Module version: 0.08
- Source (raw)
- Browse (raw)
- Changes
- How to Contribute
- Issues
- Testers (2418 / 2 / 0)
- Kwalitee
Bus factor: 2- 32.65% Coverage
- License: unknown
- Activity
24 month- Tools
- Download (4.27KB)
- MetaCPAN Explorer
- Permissions
- Subscribe to distribution
- Permalinks
- This version
- Latest version
- Dependencies
- Carp
- Test::More
- Wiki::Toolkit
- and possibly others
- Reverse dependencies
- CPAN Testers List
- Dependency graph
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 aspubs
. 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 categoryBar
, write a node called any one ofFoo
,Category Foo
, orCategoryFoo
with metadata indicating that it's in categoriesBar
andCategory
.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
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.
Module Install Instructions
To install Wiki::Toolkit::Plugin::Categoriser, copy and paste the appropriate command in to your terminal.
cpanm Wiki::Toolkit::Plugin::Categoriser
perl -MCPAN -e shell install Wiki::Toolkit::Plugin::Categoriser
For more information on module installation, please visit the detailed CPAN module installation guide.