NAME
   Data::Foswiki - Read and Write Foswiki topics

VERSION
   Version 0.02

SYNOPSIS
   Quickly read and write Foswiki topics into a hash

       use Data::Foswiki;

       #read
       my $fh;
       open($fh, '<', '/var/lib/foswiki/data/System/FAQSimultaneousEdits.txt') or die 'open failure';
       my @topic_text = <$fh>;
       close($fh);
       my $topic = Data::Foswiki::Test2::deserialise(@topic_text);

       $topic->{TOPICINFO}{author} = 'NewUser';
       $topic->{PARENT}{name} = 'WebHome';

       $topic->{TEXT} = "Some new text\n\n".$topic->{TEXT};
       undef $topic->{TOPICMOVED};

       $topic->{FIELD}{TopicTitle}{attributes} = 'H';

       #add a new field that is not part of the form definition - if edited within foswiki, it willbe removed
       #but its useful for importing
       $topic->{FIELD}{NewField}{value} = 'test';

       #write
       open($fh, '>', '/var/lib/foswiki/data/System/FAQNewFaq.txt') or die 'write failure';
       print $fh Data::Foswiki::Test::serialise($topic);
       close($fh);

EXPORT
   A list of functions that can be exported. You can delete this section if
   you don't export anything, such as for a purely object-oriented module.

SUBROUTINES/METHODS
 deserialise($text|@stringarray) -> $hash_ref
   Parse a string, or array of strings and convert into a hash of the
   Foswiki topic's data

   (apparently Perl can be faster reading a file into an array)

   if you pass in an undef / empty string, you will get undef back

 serialise($hashref) -> string
   Serialise into a foswiki 'embedded' formatted string, ready for writing
   to disk.

   Note: this does not take care of updating the topic revision and date
   data

AUTHOR
   Sven Dowideit, "<SvenDowideit at fosiki.com>"

BUGS
   Please report any bugs or feature requests to "bug-data-foswiki at
   rt.cpan.org", or through the web interface at
   <http://rt.cpan.org/NoAuth/ReportBug.html?Queue=Data-Foswiki>. I will be
   notified, and then you'll automatically be notified of progress on your
   bug as I make changes.

SUPPORT
   Foswiki support can be found in the #foswiki irc channel on
   <irc://irc.freenode.net>, or from SvenDowideit
   <mailto:[email protected]>

ACKNOWLEDGEMENTS
TO DO
   make an XS version, and try a few different approaches to parsing and
   then benchmark them this would mean making this module into a facade to
   the other implementations.

   is it faster not to modify the array? (just keep start and end Text
   indexes?)

LICENSE AND COPYRIGHT
   Copyright 2012 Sven Dowideit [email protected].

   This program is free software; you can redistribute it and/or modify it
   under the terms of either: the GNU General Public License as published
   by the Free Software Foundation; or the Artistic License.

   See http://dev.perl.org/licenses/ for more information.