The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.

NAME

Module::Install::ReadmeFromPod - A Module::Install extension to automatically convert POD to a README

SYNOPSIS

  # In Makefile.PL

  use inc::Module::Install;
  author 'Vestan Pants';
  license 'perl';
  readme_from 'lib/Some/Module.pm';
  readme_from 'lib/Some/Module.pm', { clean => 1, format => 'htm', output_file => 'SomeModule.html' };

A README file will be generated from the POD of the indicated module file.

Note that the author will need to make sure Module::Install::ReadmeFromPod is installed before running the Makefile.PL. (The extension will be bundled into the user-side distribution).

DESCRIPTION

Module::Install::ReadmeFromPod is a Module::Install extension that generates a README file automatically from an indicated file containing POD, whenever the author runs Makefile.PL. Several output formats are supported: plain-text, HTML, PDF or manpage.

COMMANDS

This plugin adds the following Module::Install command:

readme_from

Does nothing on the user-side. On the author-side it will generate a README file.

  readme_from 'lib/Some/Module.pm';

If a second parameter is set to a true value then the README will be removed at make distclean.

  readme_from 'lib/Some/Module.pm', 1;

A third parameter can be used to determine the format of the README file.

  readme_from 'lib/Some/Module.pm', 1, 'htm';

Valid formats for this third parameter are:

txt, text

Produce a plain-text README file using Pod::Text. The 'txt' format is the default.

htm, html

Produce an HTML README.htm file using Pod::Html.

man

Produce a README.1 manpage using Pod::Man.

md

Produce a README.md file using Pod::Markdown.

pdf

Produce a PDF README.pdf file with App::pod2pdf if this module is installed.

A fourth parameter can be used to supply an output filename.

  readme_from 'lib/Some/Module.pm', 0, 'pdf', 'SomeModule.pdf';

Finally, you can pass additional arguments to the POD formatter that handles the requested format.

  my @options = ( 'release' => 1.03, 'section' => 8 ); # options for Pod::Man
  readme_from 'lib/Some/Module.pm', 1, 'man', undef, @options;

But instead of passing this long list of optional arguments to readme_from, you should probably pass these arguments as a named hashref for clarity.

  my @options = ( 'release' => 1.03, 'section' => 8 );
  readme_from 'lib/Some/Module.pm', {clean => 1, format => 'man', output_file => undef, options => @options};

If you use the all_from command, readme_from will default to that value.

  all_from 'lib/Some/Module.pm';
  readme_from;              # Create README from lib/Some/Module.pm
  readme_from '','clean';   # Put a empty string before 'clean'

AUTHOR

Chris BinGOs Williams

LICENSE

Copyright © Chris Williams

This module may be used, modified, and distributed under the same terms as Perl itself. Please see the license that came with your Perl distribution for details.

SEE ALSO

Module::Install

Pod::Text

Pod::Html

Pod::Man

Pod::Markdown

App::pod2pdf