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/subsub...
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 some kind of sophisticated "look-behind", which is what is being done.
LaTeX::Pod
was designed with the intention to be context-sensitive aware. This is being achieved 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 documentation format has a limited subset of directives, the overhead of keeping track of node occurences appears to be bearable. The POD computed may consist of too many newlines before undergoing a transformation where leading and trailing newlines will be truncated.
SEE ALSO
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.