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.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).

0.30    22 April 2003
        Added support for supplying 'host' parameter when connecting to
          MySQL/Postgres databases (requested and assisted by Paul Makepeace).

0.27    5 April 2003
        Added ->reinitialise_stores method to CGI::Wiki::TestConfig::Utilities
          to make it easier for plugins and so forth to make sure they have
          nice virginal test stores before they start running their tests.

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

