I'm implementing a Pod pre-processor using the:
=for pp command <option1, option2> args
escape syntax that Pod gives us. I've started using the Pod::PP namespace,
but would like to reserve the name space. Here's the DLSI entry:
Name DSLI Description Info
----------- ---- -------------------------------------------- -----
Pod::PP idpO A Pod pre-processor RAM
[The following might be of interest to Brad only]
The Pod::PP class inherits from Pod::Parser. It currently suports things like:
CPP-like features:
=for pp include "file" # a #include, relative to local file
CPP-like features, toying for now:
=for pp define SYMBOL value # a #define SYMBOL value (not a macro)
=for pp undef SYMBOL # a #undef SYMBOL
=for pp ifdef SYMBOL
=for pp else
=for pp endif
=for pp ifndef
=for pp if defined(SYMBOL) || (OTHER <= 4 && TARGET eq 'html')
=for pp elif expr
No-so CPP-like, and 100% experimental:
=for pp include <nest> "file" # a #include with =head1 -> =head3...
=for pp image <center> "file" # insert image + format (centered)
=for pp autolink "key phrase" LINK # turn all X<key phrase> into LINK
The feature set is not fully established yet. I'm implementing what I
currently need... Also, it's really pre-processing. For instance, the
"image" command can generate the various "=for html", "=for text" etc...,
(which might load "file.text" instead if "file.jpeg" is loaded for HTML),
unless pre-processing is constrained (we know we're going to generate HTML,
so don't bother, and strip all =for which are not for html).
Finally all output is normalized. A sequence of
==for xxx...
==for yyy...
is turned into:
=for xxx...
=for yyy...
so that translators do not choke on the non-standard (but useful) == prefix.
Raphael