Hey Harald,

Somewhere in 2003, I had the same need.  I suggested to get Pod to a
higher level, but people refused larger changes.  So, I developed my own
Pod extension, which generates both clean HTML via templates and clean POD.
It is named 'OODoc' (because it was created before OpenOffice existed :-(

Additions:
  - meaningfull element names: additional =method, =c_method, =function,
    =option, =default, =requires, =example
  - far more fine-grained references via an M<> tag: even refer to
    specific named parameters of (maybe inherited) methods.  In HTML,
    those fine-grained refs work.
  - extraction of the extended POD from the pm files, so manpage elements
    can be added automatically: header, footer, inheritance relations,
    inherited options and methods/functions.
  - combining/merging information from various packages into one set of
    HTML or man-pages.
  - pluggable (extensible) parsers, page elements, and output generators.

For produced HTML see: http://perl.overmeer.net/mailbox/html/manuals/
(Yes, I should really spend some time on a modern style-sheet)
(I should convert the template to use ajax to replace frames)

For produced manpages, see
   https://metacpan.org/pod/distribution/Mail-Box-IMAP4/lib/Mail/Box/IMAP4.pod

which is created by extraction from source
   
https://github.com/markov2/perl5-Mail-Box-IMAP4/blob/master/lib/Mail/Box/IMAP4.pm

For my MailBox suite of modules (about 1000 methods), OODoc generates
70k lines of Pod which before I have to maintain myself.

However... the fancier things you want to achieve, the more time you have
to spend on configuring it...  that's the advantage of the traditional
Pod set-up.  One of the reasons that I think I still am the only user of
OODoc ;-)

Maybe this helps you shaping your ideas.

MarkOv

* Harald Jörg ([email protected]) [190505 22:59]:
> I hope that I don't start a religious war with this question.
> I found this mailing list advertised in the Pod::Simple docs, so I would
> accept a bias towards Pod::Simple based solutions :)
> 
> So here's what I want to do: Extract Pod from a bunch of (ca 100) Perl
> modules and Pod files and convert it to HTML.  Or XHTML.  Anything good
> for today's browsers is fine.  Sounds pretty TIMTOWTDI, but every way
> I've tried so far has minor issues, and I've some requirements for which
> I haven't found an existing solution yet.
> 
> The issues are rather harmless:
> 
>  - Pod::POM is what's used today in the software to create the HTML
>    docs.  It fails to process L<The Perl Homepage|https://www.perl.org>
>    links correctly.
> 
>  - Pod::Simple::HTML produces invalid HTML (nested 'a' elements) when a
>    heading or item contains a Link like this:
> 
>      =head1 Start at L<https://www.perl.org>
> 
>  - Pod::Simple::XHTML apparently makes no effort to find content for the
>    <title> element (nor does core pod2html, BTW).
> 
> And there are a few things I miss.  They could be implemented in a
> subclass of either of these, or even provided as an enhancement via Pull
> Request: 
> 
>  - A custom link resolver: I want links to documents within the project
>    to be relative, but link to other CPAN modules to be
>    absolute. Preferably to metacpan.org instead of search.cpan.org.
> 
>  - A custom table of contents
> 
>  - Custom (or just different) backlinks to top of page
> 
>  - Decent heuristics for page titles (Pod::Simple::PullParser does that
>    marvelously)
> 
>  - ...and some more, but not enough to roll out my own converter.
> 
> So, which if the modules is considered "state of the art" by the Pod
> People?  Which one of them is least likely to be deprecated?
> 
> Do others have similar requirements?
------------------------------------------------------------------------
       Mark Overmeer MSc                                MARKOV Solutions
       [email protected]                          [email protected]
http://Mark.Overmeer.net                   http://solutions.overmeer.net

Reply via email to