Apache2-PodBrowser
view release on metacpan or search on metacpan
works in most browsers with the necessary CSS support. Notably, the
Internet Explorer is not among them.
GZIP
When GZIP is true, the whole HTTP body is compressed. The browser must
accept gzip, and Compress::Zlib must be available. Otherwise, GZIP is
ignored.
An appropriate "Vary" header is issued to make proxy servers happy.
Also the environment variables "no-gzip" and "gzip-only-text/html" that
can be set for example by the "BrowserMatch" directive are regarded. See
the mod_deflate documentation
<http://httpd.apache.org/docs/2.2/mod/mod_deflate.html#recommended> for
more information
PerlSetVar GZIP 1
By default, this is off.
PODDIR
This variable is useful only in perldoc mode.
It declares additional directories to look for PODs. This can be given
multiple times. Directories given this way are searched before @INC.
PerlAddVar PODDIR /path/to/project1
PerlAddVar PODDIR /path/to/project2
NOINC
In perldoc mode POD files are normally looked up in @INC plus in the
directories given by "PODDIR". If "NOINC" is set then the @INC search is
skipped. That means only the directories specifed in httpd.conf are
scanned:
PerlAddVar NOINC 1
For documentation requests for perl functions via
<http://localhost/perldoc/?functionname> @INC is used nevertheless to
locate "perlfunc.pod" if it is not found in one of the given
directories.
In direct mode this variable is ignored.
CACHE
When in perldoc mode "Apache2::PodBrowser" uses Pod::Find::pod_find to
generate a list of available POD files. This may take quite a while
depending upon the number of directories and files to scan for POD.
To avoid to repeat this for each POD index request one can set up a
cache.
PerlSetVar CACHE /path/to/cache.mmdb
The cache file itself is created on the first access to the index. The
POD index page then contains a link to update the cache. So, if a POD
file is added or removed from the system this link is to be clicked to
keep the POD index page up to date.
The cache file itself is a MMapDB object. If this module is not
available you'll probably get a "404 - NOT FOUND" response the next time
the POD index page is requested if "CACHE" is set.
The directory containing the cache file must be writable by the "httpd".
CONTENTTYPE
You'll probably need that only for plain text output with the
Pod::Simple::Text parser. Here one can set the content type of the
output.
PerlSetVar CONTENTTYPE "text/plain; charset=UTF-8"
PARSER and LINKBASE
"PARSER" sets the POD-to-HTML converter class that is used. It should
support at least the interface that Pod::Simple::Text provides.
The Pod::Simple::Text parser gives you plain text.
If Pod::Simple::HTML is used as parser one gets almost usable output
except for the missing "DOCTYPE" HTML header and the broken linkage to
other modules.
The default "PARSER" is "Apache2::PodBrowser::Formatter" and is suitable
for perldoc mode. It derives from Pod::Simple::HTML but overrides the
constructor "new" to provide a "DOCTYPE" and "resolve_pod_page_link" to
fix the linkage.
If "LINKBASE" is not set or empty "resolve_pod_page_link" creates
relative links to other modules of the type:
./Other::Module
If "LINKBASE" is set it is prepended before "Other::Module" instead of
"./". For example you could set
PerlSetVar LINKBASE http://search.cpan.org/perldoc?
to generate links to CPAN.
For perldoc mode an empty "LINKBASE" is best choice.
In direct mode an other parser "Apache2::PodBrowser::DirectMode" should
be used. It derives from "Apache2::PodBrowser::Formatter" but overrides
"resolve_pod_page_link".
This time the link generator searches for the link destination POD by
the module name with one of the following extensions appended: ".pod",
".pm" and ".pl". If none is found it resorts to its base class. And now
"LINKBASE" makes sense.
If you know of a "Apache2::PodBrowser" running in perldoc mode you can
point "LINKBASE" to that address. This way modules that does not exist
in the local tree would be looked up there or on CPAN if "LINKBASE"
points there.
If all that is unsuitable for you you can implement your own "PARSER"
class. Have a look at the source code of this module. It is quite
straight forward regarding the 2 parser classes.
The Fixup Handler
If you use your own stylesheet or teach apache to find one of the
( run in 0.532 second using v1.01-cache-2.11-cpan-39bf76dae61 )