Create a new controller and paste this code:
package MyApp::Controller::YourNewController; # <-- Change this to your controller use strict; use warnings; use base 'Catalyst::Controller::POD'; __PACKAGE__->config( inc => 1, namespaces => [qw(Catalyst::Manual*)], self => 1, dirs => [qw()] ); 1;
This is a catalyst controller which serves PODs. It allows you to browse through your local repository of modules. On the front page of this controller is a search box which uses CPAN's xml interface to retrieve the results. If you click on one of them the POD is displayed in this application.
Cross links in PODs are resolved and pop up as a new tab. If the module you clicked on is not installed this controller fetches the source code from CPAN and creates the pod locally. There is also a TOC which is always visible and scrolls the current POD to the selected section.
Catalyst::Plugin::Static::Simple is required and has to be loaded.
- dirs (Arrayref)
Search for modules in these directories.
- expanded_module_tree (Boolean)
Expand the module browser tree on initial page load.
- home_tab_content (String)
HTML to be displayed in the Home tab.
Defaults to the existing CPAN search box.
- inc (Boolean)
Search for modules in @INC. Set it to 1 or 0.
- initial_module (String)
If this option is specified, a tab displaying the perldoc for the given module will be opened on load. Handy if you wish to disable the home tab and specify a specific module's perldoc as the initial page a user sees.
- namespaces (Arrayref)
Filter by namespaces. See Pod::Simple::Search
- self (Boolean)
Search for modules in
$c->path_to( 'lib' ).
- show_home_tab (Boolean)
Show or hide the home tab.
This module works fine for most PODs but there are a few which do not get rendered properly. Please report any bug you find. See "BUGS".
Have a look at Pod::Browser which is a catalyst application running this controller. You can use it as a stand-alone POD server.
Write more tests!
Hey! The above document had some coding errors, which are explained below:
- Around line 352:
You forgot a '=back' before '=head1'