NAME
    CGI::Wiki - A toolkit for building Wikis.

DESCRIPTION
    Helps you develop Wikis quickly by taking care of the boring bits for
    you. The aim is to allow different types of backend storage and search
    without you having to worry about the details.

SIGNIFICANT RECENT CHANGES

0.38    17 May 2003
        Added ->list_dangling_links method; thanks to Simon Cozens for
          the idea.

0.36    9 May 2003
        Added CGI::Wiki::Plugin as a base class for plugins to inherit from.

0.33    3 May 2003
        Added ->fuzzy_title_match method to the Search::InvertedIndex backend
          (CGI::Wiki::Search::SII).  You will need to re-index all existing
          nodes in your wiki in order to take advantage of this (see the
          Changes file for how).

SYNOPSIS

      # Set up a wiki object with an SQLite storage backend, and an
      # inverted index/DB_File search backend.  This store/search
      # combination can be used on systems with no access to an actual
      # database server.

      my $store     = CGI::Wiki::Store::SQLite->new(
          dbname => "/home/wiki/store.db" );
      my $indexdb   = Search::InvertedIndex::DB::DB_File_SplitHash->new(
          -map_name  => "/home/wiki/indexes.db",
          -lock_mode => "EX" );
      my $search    = CGI::Wiki::Search::SII->new(
          indexdb => $indexdb );

      my $wiki      = CGI::Wiki->new( store     => $store,
                                      search    => $search );


MAJOR METHODS

    write_node
          $wiki->write_node($node_name, $content, $checksum);
          $wiki->write_node(
              "Calthorpe Arms",
              "A rather nice pub on Gray's Inn Road",
              $checksum,
              { category => [ "Pub", "Pub Food", "Bloomsbury" ] }
          );

    format
          my $cooked = $wiki->format($raw);

    delete_node
          $wiki->delete_node($node_name);

    list_all_nodes
          my @node_names = $wiki->list_all_nodes;

    list_backlinks
          my @links_to_me = $wiki->list_backlinks($node_name);

    list_nodes_by_metadata
          my @pubs = $wiki->list_nodes_by_metadata(
              metadata_type  => "category",
              metadata_value => "Pub" );

    list_recent_changes
          my @last_week_edits  = $wiki->list_recent_changes( days => 7 );
          my @last_ten_changes = $wiki->list_recent_changes(
                                                  last_n_changes => 10 );

    node_exists
          print "Got wombats" if $wiki->node_exists("Wombats");

    retrieve_node
          my $homepage_content = $wiki->retrieve_node("Home Page");

          my %node_data = $wiki->retrieve_node( $node_name );
          print "Last Modified:    $node_data{last_modified}\n";
          print "Current Version:  $node_data{version}\n";
          print "Current Checksum: $node_data{checksum}\n";
          print "Current Content:  $node_data{content}\n";
          print "Categories:       "
              . join(", ", @{$node_data{metadata}{category}}) . "\n";

    verify_checksum
          my $as_i_left_it = $wiki->verify_checksum( $node_name, $checksum );

    search_nodes
          my @nodes = $search->nodes( "camel" );

