
 TO DO
 =====

 SHORT TERM
 ----------
 * Remove Pod::PlainText from the PodParser distribution once it has
   replaced Pod::Text (in functin and in name) in the latest stable
   Perl distribution (this is slated to happen for Perl 5.6, its currently
   in 5.005_58 now but thats stil considered a development versin rather
   than "stable").

 * Make the test-suite more portable (for Mac + VMS + NT) without having
   to use lots of ugly conditional code. There has to be a better way
   to to dissect and reconstruct filepaths than what 5.004 currently
   offers.

 * Add the ability to use callbacks _instead_ _of_ inheritance if so
   desired (or mix+match 'em as you wish). This means that there should
   be a way to use callbacks instead of inheritance for the equivalent
   of each of the abstract base class methods that do text processing
   (like preprocess_xxxxx and {begin,end}_xxxx and others). This will go
   into a module named Pod::Callbacks.

 * IMPROVE PERFORMANCE!!! (its getting kind of slow)

 * Implement -ranges "option" to Pod::Select & podselect


 LONG TERM
 ---------

 * Maybe create a Pod::Compiler class that reads a POD and returns a
   list of Pod::Paragraphs objects?

 * Make changes necessary to accommodate Kenneth Albanowski's Pod::Simplify
   module so that it may use Pod::Parser.

 * See about providing the ability (perhaps via constructor options) to turn
   off certain unwanted Pod::Parser features in order to improve performance
   (things like calling preprocess_xxx() methods and/or some other "virtual"
   member function calls that a subclass might not want to make use of).

 * Try to allow the user to provide a callback function/method which could
   be used in place of the parse_paragraph() method and/or the command(),
   verbatim(), and textblock() methods.  Such a callback might be provided
   as a constructor argument to Pod::Parser.  Perhaps it might be possible
   to pass the callback method an array of lines or of paragraphs (rather
   than one input block at a time) if certain options are specified.

 * In Pod::Checker, check that =encoding specifies a valid encoding;
   possibly by using the Encode module?

 * Add a check of Perl core pods (as suggested by M. Schwern):
   The follow test runs each pod/*.pod file through Pod::Checker and fails
   if there are any warnings or errors.  There are a handful of errors and 
   huge amounts of warnings.
   This patch should not be applied to the main sources until the warnings 
   are cleaned up.

--- t/pod/corepods.t	2002/12/10 22:36:52	1.1
+++ t/pod/corepods.t	2002/12/10 23:21:25
@@ -0,0 +1,22 @@
+#!perl -w
+
+BEGIN {
+    chdir 't';
+    @INC = '../lib';
+}
+
+use Pod::Checker;
+use Test::More;
+use File::Spec;
+
+chdir File::Spec->updir;
+my @podfiles = glob "pod/*.pod";
+plan tests => scalar @podfiles;
+
+my $checker = Pod::Checker->new;
+
+foreach my $podfile (@podfiles) {
+    $checker->parse_from_file($podfile, \*STDERR);
+    is( $checker->num_errors,   0, "podchecker $podfile error check" );
+    is( $checker->num_warnings, 0, "podchecker $podfile warnings check" );
+}



Pod::Checker etc.:

Brad:

 * I do not think there should ever be any complaint about the first
   =pod directive being something other than =head (or other than =pod and
   =head) unless some kind of '-strictmanpagestyle' option is set. There is
   no law that says the beginning of ever document has to be a heading.
   Sometimes it useful to have an untitled intro. Now it *is* true that any
   manpage should start with a heading, but not any POD document in general.

   => implement '-manpage' option for Pod::Checker?

Wolfgang Laun:

 * =over/=back without intervening =item produces a warning even when
   there are pararaphs in between. But this could be used to produce
   indented paragraphs. Restrict warning to completely empty lists?

   => is this legal POD at all? Currently a warning is printed

