NAME

Mojolicious::Plugin::PODViewer - POD renderer plugin

VERSION

version 0.007

SYNOPSIS

# Mojolicious (with documentation browser under "/perldoc")
my $route = $app->plugin('PODViewer');
my $route = $app->plugin(PODViewer => {name => 'foo'});
my $route = $app->plugin(PODViewer => {preprocess => 'epl'});

# Mojolicious::Lite (with documentation browser under "/perldoc")
my $route = plugin 'PODViewer';
my $route = plugin PODViewer => {name => 'foo'};
my $route = plugin PODViewer => {preprocess => 'epl'};

# Without documentation browser
plugin PODViewer => {no_perldoc => 1};

# foo.html.ep
%= pod_to_html "=head1 TEST\n\nC<123>"

# foo.html.pod
=head1 <%= uc 'test' %>

DESCRIPTION

Mojolicious::Plugin::PODViewer is a renderer for Perl's POD (Plain Old Documentation) format. It includes a browser to browse the Perl module documentation as a website.

This is a fork of the (deprecated) Mojolicious::Plugin::PODRenderer.

OPTIONS

Mojolicious::Plugin::PODViewer supports the following options.

name

# Mojolicious::Lite
plugin PODViewer => {name => 'foo'};

Handler name, defaults to pod.

route

The route to add documentation to. Defaults to $app->routes->any('/perldoc'). The new route will have a name of plugin.podviewer.

default_module

The default module to show. Defaults to Mojolicious::Guides.

allow_modules

An arrayref of regular expressions that match modules to allow. At least one of the regular expressions must match. Disallowed modules will be redirected to the appropriate page on http://metacpan.org.

layout

The layout to use. Defaults to podviewer.

no_perldoc

# Mojolicious::Lite
plugin PODViewer => {no_perldoc => 1};

Disable Mojolicious::Guides documentation browser that will otherwise be available under /perldoc.

preprocess

# Mojolicious::Lite
plugin PODViewer => {preprocess => 'epl'};

Name of handler used to preprocess POD, defaults to ep.

HELPERS

Mojolicious::Plugin::PODViewer implements the following helpers.

pod_to_html

%= pod_to_html '=head2 lalala'
<%= pod_to_html begin %>=head2 lalala<% end %>

Render POD to HTML without preprocessing.

TEMPLATES

Mojolicious::Plugin::PODViewer bundles the following templates. To override this template with your own, create a template with the same name.

podviewer/perldoc.html.ep

This template displays the POD for a module. The HTML for the documentation is in the perldoc content section (<%= content 'perldoc' %>). The template has the following stash values:

module

The current module, with parts separated by /.

cpan

A link to http://metacpan.org for the current module.

topics

An array of arrays of topics in the documentation. Each inner array is a set of pairs of link text and link href suitable to be passed directly to the link_to helper. New topics are started by a =head1 tag, and include all lower-level headings.

layouts/podviewer.html.ep

The layout for rendering POD pages. Use this to add stylesheets, JavaScript, and additional navigation. Set the layout option to change this template.

METHODS

Mojolicious::Plugin::PODViewer inherits all methods from Mojolicious::Plugin and implements the following new ones.

register

my $route = $plugin->register(Mojolicious->new);
my $route = $plugin->register(Mojolicious->new, {name => 'foo'});

Register renderer and helper in Mojolicious application.

SEE ALSO

Mojolicious, Mojolicious::Guides, https://mojolicious.org.

AUTHORS

  • Sebastian Riedel <kraih@mojolicious.org>

  • Doug Bell <preaction@cpan.org>

CONTRIBUTORS

  • brad <brad@clickmagick.com>

  • CandyAngel <candyangel@electricjungle.org>

  • Luc Didry <luc@didry.org>

  • Oleg <verdrehung@gmail.com>

  • Tekki <tekki@tekki.ch>

  • Zoffix Znet <cpan@zoffix.com>

COPYRIGHT AND LICENSE

This software is copyright (c) 2018 by Sebastian Riedel, Doug Bell.

This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.