DocSet::* TODO list

### general todo ###

- Need to improve the link checker to verify the #anchors. For that we
  need to port the previous system, where when headers are parsed they
  are also stored in some db (dbm file?) and then can be verified for
  existence with L<> is called.

- need a new attribute which points to the current docset root, so
  even if we are in 'index.html' it will still point to
  '.'. cur_docset_rel_dir? which is simply doc.dir.rel_doc_root in the
  case of chapters and "." in the case of index.html.

- if all the target html docs were brought up-to-date and the pdf
  files didn't exist. When the pdf files are built in the future
  (without -f) they won't be linked to the html pages, because the
  html pages rebuild is skipped. (currently must use -d flag to pick
  up the newly created pdf files). Not sure how to handle this,
  probably somehow the source file's timestamp should be moved ahead
  to force the update of the html files. Or the corresponding target
  html files should be removed or set a timestamp before the timestamp
  of the source files.

- path_from_base isn't set correctly everywhere, e.g. it isn't set in
  about/index.html though it's set in docs/index.html.

- Need to document the configuration file's features (partially done
  in Config.pm).

- Need to document what objects/attributes are available in the
  templates (more docs inside the templates?)

- Should use File::Spec when working with physical paths.

- DocSet::Doc::POD2HTMLPS currently is almost the same as
  DocSet::Doc::POD2HTML. need to reuse the code from
  DocSet::Doc::POD2HTML.

- DocSet::Config::files_to_scan_copy could handle accept/deny pattern
  rules/mime types (now it handles only glob/deny rules)

### optimization ###

- the code creates lots of objects and some are sticking around for a
  long time, thus increasing the memory usage. Should check whether
  some objects can be undef'ed when they aren't needed anymore. This
  can be a question of speed versus memory usage. For example
  NavigateCache currenly caches all the caches, which may be a good
  thing in terms of speed, but not good in terms of memory. luckily
  the cache is internal to the class, so objects shouldn't carry
  copies around and these can be killed.

- cache writes to disk: because we rewrite _order_ids on each
  invocation, we have to sync the cache to the disk, even if it didn't
  really change. In the future we may do some checksum check and write
  the cache to disk only if it has changed.

### missing features / not urgent ### 

- missing split_html output mode (port from Pod::HtmlPsPdf)

- missing tar.gz packaging support (port from Pod::HtmlPsPdf)

- version support for books (end-node docsets) )(so each book can be
  versioned, version used from CPAN release, if we are going to
  release source books on CPAN)

### nice to have new features ###

- index plugin. so instead of linking to some pages from index.html,
  it'll link to the local files ala mod_autoindex. supply patterns 
  to use for matching only specific files. we need this for example 
  for /dist and I want it for my site's modules/ directory, so I can 
  simply add/remove files and they will be automatically reindexed.

- Makefile-like support feature: Scan for Makefile, Makefile.PL and
  make.pl. And run these if encountered, before starting the
  processing of the docsets. If this is implemented we don't have to
  commit autogenerated files.

- Need to encode email addresses to protect our authors from extra
  SPAM. Consider using Apache::AntiSpam.  It does html encoding, which
  works for users, but not for spammers:
  http://search.cpan.org/search?dist=Apache-AntiSpam

- In L<> make the title optional. If it's not provided, figure out the
  title by finding the page L<> points to. Moreover try to do the same
  for sections as well.
