All,

As part of building the recent release candidates I have had to have a look at the documentation, and it's a bit of a mess. I propose to tidy it up.

So that the source distribution results in good PPMs with all the documentation enclosed it is important that it is possible to run pod2html on the blib directory tree to generate the html pages. As I understand it this is exactly what make_ppm (see PPM::Make package from CPAN) does.

So, I am proposing:
(1) to throw away docs/dodoc and docs/dohtml, replacing them with a single tool in a new directory 'build_tools' called doPodDocs.pl that will - parse the XS/PM/CPP files extracting the documentation, and building the per-package POD documentation, and putting it in the correct location under blib. - copy any static POD content from the docs directory to the correct location under blib (2) to re-work the static content in the docs directory, as there is a lot of duplicated content currently, as well as a lot of content that really needs to be generated dynamically, but is not - more details below. (3) re-work the format of every page to be more pod2html friendly, and to get a better look with the ActiveState Perl CSS style sheet. (3) add a target to Makefile.PL that will result in building the POD documentation as part of the standard build process (nmake or nmake all). (4) adding a target to the makefile to allow the html to be generated (using pd2html)
(5) adding a target to the makefile to build a PPM distribution

I propose the following structure for the documentation:

Win32/GUI.pod - introductory page, very similar to current one.

Win32/GUI/*.pod - dynamically built documentation for each package (except Win32::GUI)

Win32/GUI/UserGuide/Introduction.pod - introduction page
Win32/GUI/UserGuide/Concepts.pod     - general concepts page
Win32/GUI/UserGuide/FAQ.pod            - FAQ

Win32/GUI/Tutorial.pod - contents page for the tutorials Win32/GUI/Tutorial/PartN - page for each part of the tutorial

Win32/GUI/Reference/Packages.pod - dynamically generated list of packages Win32/GUI/Reference/Methods.pod - common methods - dynamic (documentation for Win32::GUI package) Win32/GUI/Reference/Events.pod - common events - dynamic: all events marked as APPLIES_TO:* Win32/GUI/Reference/Options.pod - static documentation of the common options

In the longer term even the static POD documents need some type of simple templating to allow dates and version numbers to be updated automatically.

I am starting work on this imminently, and would welcome feedback.

Regards,
Rob.

Reply via email to