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 )