Pod-Tree
view release on metacpan or search on metacpan
lib/Pod/Tree/PerlTop.pm view on Meta::CPAN
$html->set_links($links);
$html->translate;
}
sub get_top_entry {
my $perl_top = shift;
my $pod_dst = $perl_top->{pod_dst};
my $page = $perl_top->{page};
+{
URL => "$pod_dst/$page.html",
description => 'perl(1)'
};
}
sub _get_links {
my $perl_top = shift;
my $links = {};
$perl_top->_get_pod_links($links);
$perl_top->_get_dist_links($links);
$links;
}
sub _get_pod_links {
my ( $perl_top, $links ) = @_;
my $perl_dir = $perl_top->{perl_dir};
my $pod_src = $perl_top->{pod_src};
my $dir = "$perl_dir/$pod_src";
opendir( DIR, $dir )
or die "Pod::Tree::PerlTop::get_pod_links: Can't opendir $dir: $!\n";
my @files = readdir(DIR);
closedir(DIR);
my @pods = grep {m( \.pod$ )x} @files;
my @others = grep { $_ ne 'perl.pod' } @pods;
for my $other (@others) {
$other =~ s( \.pod$ )()x;
$links->{$other} = $other;
}
}
sub _get_dist_links {
my ( $perl_top, $links ) = @_;
my $dir = $perl_top->{perl_dir};
opendir( DIR, $dir )
or die "Pod::Tree::PerlTop::get_dist_links: Can't opendir $dir: $!\n";
my @files = readdir(DIR);
closedir(DIR);
my @README = grep {/^README/} @files;
for my $file (@README) {
my ( $base, $ext ) = split m(\.), $file;
$links->{"perl$ext"} = "../$file";
}
}
1
__END__
=head1 NAME
Pod::Tree::PerlTop - generate a top-level index for Perl PODs
=head1 SYNOPSIS
$perl_map = Pod::Tree::PerlMap->new;
$perl_top = Pod::Tree::PerlTop->new( $perl_dir, $HTML_dir, $perl_map, %opts );
$perl_top->index(@translators);
$perl_top->translate;
$top = $perl_top->get_top_entry;
=head1 DESCRIPTION
C<Pod::Tree::PerlTop> generates a top-level index for Perl PODs.
It also translates F<perl.pod> to F<perl.html>
The translator is specially hacked to insert links into the big verbatim
paragraph that lists all the other Perl PODs.
=head1 METHODS
=over 4
=item I<$perl_top> = C<new> C<Pod::Tree::PerlTop> I<$perl_dir>,
I<$HTML_dir>, I<$perl_map>, I<%options>
Creates and returns a new C<Pod::Tree::PerlTop> object.
I<$perl_dir> is the root of the Perl source tree.
I<$HTML_dir> is the directory where HTML files will be written.
I<$perl_map> maps POD names to URLs.
C<Pod::Tree::PerlTop> uses it to resolve links in the F<perl.pod> page.
I<%options> are passed through to C<Pod::Tree::HTML>.
=item I<$perl_top>->C<index>(I<@translators>)
Generates a top-level index of all the PODs.
The index is written to I<HTML_dir>C</index.html>.
I<@translators> is a list of other C<Pod::Tree::Perl*> translator objects.
C<index> makes a C<get_top_entry> call on each of them to obtain
URLs and descriptions of the pages that it links to.
=item I<$perl_top>->C<translate>
Translates the F<perl.pod> file to HTML.
( run in 0.713 second using v1.01-cache-2.11-cpan-71847e10f99 )