NAME
LaTeX::Pod - Transform LaTeX source files to POD (Plain old documentation)
SYNOPSIS
use LaTeX::Pod;
my $parser = LaTeX::Pod->new('/path/to/latex/source');
print $parser->convert;
DESCRIPTION
LaTeX::Pod
converts LaTeX sources to Perl's POD (Plain old documentation) format. Currently only a subset of the available LaTeX language is suppported - see below for detailed information.
CONSTRUCTOR
new
The constructor requires that the path to the latex source must be declared:
$parser = LaTeX::Pod->new('/path/to/latex/source');
Returns the parser object.
METHODS
convert
There is only one public method available, convert
:
$parser->convert;
Returns the POD document as string.
SUPPORTED LANGUAGE SUBSET
It's not much, but there's more to come:
chapters
sections/subsections
verbatim blocks
itemized lists
plain text
bold/italic/code font tags
umlauts
IMPLEMENTATION DETAILS
The current implementation is a bit flaky because LaTeX::TOM
, the framework being used for parsing the LaTeX nodes, makes a clear distinction between various types of nodes. As example, an \item directive has quite often a separate text which is associated with former one. And they can't be detected without a lookahead.
I tried to implement a context-sensitive awareness for LaTeX::Pod
. I did so by setting which node has been seen before the current one in order to be able to call the appropriate routine for a LaTeX directive with two or more nodes. Furthermore, LaTeX::Pod
registers which node it has previously encountered and unregisters this information when it made use of it.
Considering that the POD language has a limited subset of commands, the overhead of keeping track of node occurences seems almost bearable. The POD generated may consist of too many newlines (because we can't always predict the unpredictable) before undergoing the final scrubbing where more than two subsequent newlines will be truncated.
AUTHOR
Steven Schubiger <schubiger@cpan.org>
LICENSE
This program is free software; you may redistribute it and/or modify it under the same terms as Perl itself.