1#line 1 2package Module::Install::ReadmeMarkdownFromPod; 3 4use 5.006; 5use strict; 6use warnings; 7 8our $VERSION = '0.03'; 9 10use base qw(Module::Install::Base); 11 12sub readme_markdown_from { 13 my ($self, $file, $clean) = @_; 14 return unless $Module::Install::AUTHOR; 15 die "syntax: readme_markdown_from $file, [$clean]\n" unless $file; 16 17 # require, not use because otherwise Makefile.PL will complain if 18 # non-authors don't have Pod::Markdown, which would be bad. 19 require Pod::Markdown; 20 $self->admin->copy_package('Pod::Markdown', $INC{'Pod/Markdown.pm'}); 21 22 my $parser = Pod::Markdown->new; 23 $parser->parse_from_file($file); 24 open my $fh, '>', 'README.mkdn' or die "$!\n"; 25 print $fh $parser->as_markdown; 26 close $fh or die "$!\n"; 27 28 return 1 unless $clean; 29 $self->postamble(<<"END"); 30distclean :: license_clean 31 32license_clean: 33\t\$(RM_F) README.mkdn 34END 35 1; 36} 37 38sub readme_markdown_from_pod { 39 my ($self, $clean) = @_; 40 return unless $Module::Install::AUTHOR; 41 unless ($self->Meta->{values}{all_from}) { 42 die "set 'all_from' or use 'readme_markdown_from'\n"; 43 } 44 $self->readme_markdown_from($self->Meta->{values}{all_from}, $clean); 45} 46 47sub readme_from_pod { 48 my ($self, $clean) = @_; 49 return unless $Module::Install::AUTHOR; 50 unless ($self->Meta->{values}{all_from}) { 51 die "set 'all_from' or use 'readme_from'\n"; 52 } 53 $self->readme_from($self->Meta->{values}{all_from}, $clean); 54} 55 56sub reference_module { 57 my ($self, $file) = @_; 58 die "syntax: reference_module $file\n" unless $file; 59 $self->all_from($file); 60 $self->readme_from($file); 61 $self->readme_markdown_from($file); 62} 63 641; 65 66__END__ 67 68#line 188 69