Dist-Zilla-Plugin-UsefulReadme
view release on metacpan or search on metacpan
lib/Dist/Zilla/Plugin/UsefulReadme.pm view on Meta::CPAN
sub _generate_pod_for_version($self) {
# RECOMMEND PREREQ: Pod::Weaver::Section::Version
return $self->_fake_weaver_section( "Pod::Weaver::Section::Version", { version => $self->zilla->version } );
}
sub _generate_pod_for_installation($self) {
return $self->_fake_weaver_section( "Pod::Weaver::Section::InstallationInstructions" );
}
sub _generate_pod_for_requirements($self) {
my $file = $self->zilla->main_module;
return $self->_fake_weaver_section(
"Pod::Weaver::Section::Requirements",
{
ppi_document => $self->ppi_document_for_file($file),
}
);
}
sub _generate_pod_for_recent_changes($self) {
return $self->_fake_weaver_section( "Pod::Weaver::Section::RecentChanges", { version => $self->zilla->version } );
}
sub BUILD( $self, $ ) {
$self->log_fatal("Cannot use location='build' with phase='release'")
if $self->location eq 'build' and $self->phase eq 'release';
}
__PACKAGE__->meta->make_immutable;
__END__
=pod
=encoding UTF-8
=head1 NAME
Dist::Zilla::Plugin::UsefulReadme - generate a README file with the useful bits
=head1 VERSION
version v0.5.2
=head1 SYNOPSIS
In the F<dist.ini>
[UsefulReadme]
type = markdown
filename = README.md
phase = build
location = build
section = name
section = synopsis
section = description
section = requirements
section = installation
section = bugs
section = source
section = author
section = copyright and license
section = see also
=head1 DESCRIPTION
This is a L<Dist::Zilla> plugin to filter the main module POD to generate a F<README> file. It allows developers to
determine which sections are incorporated into the F<README> rather than dumping the entire main module documentation.
This also supports including special sections for showing the most recent entry in the F<Changes> file, showing the
runtime requirements, and including installation instructions.
This was written as a successor to L<Pod::Readme> that works better with L<Pod::Weaver>.
=head1 CONFIGURATION OPTIONS
=head2 source
This is the path to the module that will be used for generating the F<README>.
It will default to the main module.
=head2 phase
This is the phase to generate the F<README>.
Allowed values are C<build> (default) or C<release>.
=head2 location
This is where the new F<README> will be saved.
Allowed values are C<build> (default) or the distribution C<root>.
=head2 encoding
The encoding of the POD. Defaults to C<utf8>. See L<Encode::Supported>.
This was added in v0.2.0.
=head2 section_fallback
If one of the L</sections> does not exist in the POD, then generate one for the F<README>.
It is true by default but cal be disabled, e.g.
fallback = 0
=head2 sections
This is a list of C<=head1> sections to be included in the L<README|/filename>.
It can be specified multiple times using the C<section> option.
This can either be a case-insensitive string, or a regex that implicitly matches the entire heading, surrounded by slashes.
The default is equivalent to specifying
section = name
section = status
section = synopsis
section = description
section = recent changes
section = requirements
section = installation
section = security considerations
section = /support|bugs/
section = source
section = /authors?/
section = /contributors?/
section = /copyright|license|copyright and license/
section = see also
The C<version>, C<requirements>, C<installation> and C<recent changes> sections are special.
If they do not exist in the module POD, then default values will be used for them unless L</section_fallback> is false.
This will also include C<=head1> sections in L</regions> marked as C<readme>, normally used for L<Pod::Readme>:
=begin :readme
=head1 REQUIREMENTS
This should only be visible in the README.
=end :readme
If you want to amend one of the generated fallback sections akin to L<Pod::Weaver::Plugin::AppendPrepend>, you must
specify them inside of C<readme> regions.
To append something to the end of a generated section:
=begin :readme
=head1 append:INSTALLATION
Remember to bring a towel.
=end :readme
To prepend something to the beginning of a generated section:
=begin :readme
=head1 prepend:REQUIREMENTS
This requires L<libexample|http://www.example.org> to be installed on your system.
=end :readme
Note that multiple append and prepend blocks must be in separate region blocks.
=head2 type
This is the file to generate the F<README>.
Allowed values are C<pod>, C<text> (default), C<markdown>, C<gfm> (GitHub-flavoured markdown) or C<custom>.
Note that the L</filename> will have a different default, depending on the type.
If C<custom> is chosen, then you must specify a L</filename> and L</parser_class>.
=head2 parser_class
This is the POD parser class, based on the L</type>.
( run in 2.502 seconds using v1.01-cache-2.11-cpan-39bf76dae61 )