Pod-Tree

 view release on metacpan or  search on metacpan

pods2html  view on Meta::CPAN

}

sub Translate_Dir {
	my $dir = $File::Find::name;

	if ( $HTMLDir eq rel2abs File::Spec $dir) {
		$File::Find::prune = 1;
		return;
	}

	if ( $Options{module} and ( m(/t$) or m(/blib$) ) ) {
		$File::Find::prune = 1;
		return;
	}

	$dir =~ s/^\Q$PodDir/$HTMLDir/o;
	-d $dir or MkDir $dir;
	print "$File::Find::name\n";
}

sub Translate_POD {
	m( \.(pm|pod)$ )x or return;
	my $source = $File::Find::name;

	Hidden($source) and return;
	print "$source\n";

	my $dest = $source;
	$dest =~ s/^\Q$PodDir/$HTMLDir/o;
	$dest =~ s( \.\w+$ )(.html)x;

	my $depth = Depth($source);

	my $pod = $source;
	$pod =~ s(^\Q$PodDir\E/)();
	$pod =~ s( \.\w+$ )()x;
	$Index{$pod} = 1;

	my $html = Pod::Tree::HTML->new( $source, $dest, %Options );
	$html->set_options( depth => $depth );
	$html->translate($Template);
}

sub Hidden {
	my $source = shift;
	$source =~ m(\.pm$) or return 0;
	$source =~ s(\.pm$)(.pod);
	-e $source;
}

sub Depth {
	my $source = shift;
	my $tree   = Pod::Tree->new;
	$tree->load_file($source);
	my $children = $tree->get_root->get_children;
	my @pod      = grep { $_->is_pod } @$children;
	my $node1    = $pod[1];
	$node1 or return '';

	my $text = $node1->get_deep_text;
	my ($name) = split m(\s+-+\s+), $text;
	$name =~ s(^\s+)();

	my @name = split /::/, $name;
	@name - 1;
}

sub Index {
	my $index = "$HTMLDir/index.html";
	my $fh    = IO::File->new(">$index");
	defined $fh or die "Can't open $index: $!\n";

	my $stream = HTML::Stream->new($fh);

	my $title   = $Options{index};
	my $bgcolor = $Options{bgcolor};
	my $text    = $Options{text};

	$stream->HTML->HEAD;
	$stream->TITLE->text($title)->_TITLE;
	$stream->_HEAD->BODY( BGCOLOR => $bgcolor, TEXT => $text );
	$stream->H1->t($title)->_H1;

	Emit_Entries($stream);

	$stream->_BODY->_HTML;
}

sub Emit_Entries {
	my $stream = shift;

	$stream->UL;

	for my $entry ( sort keys %Index ) {
		$stream->LI->A( HREF => "$entry.html" )->t($entry)->_A->_LI;
	}

	$stream->_UL;
}

sub Cleanup {
	while (@Dirs) {
		my $dir = pop @Dirs;
		rmdir $dir;    # does nothing unless $dir is empty
	}
}

__END__

=head1 NAME

pods2html - translate a tree of PODs to HTML


=head1 SYNOPSIS

C<pods2html>
[C<--base> I<url>]
[C<--css> I<url>]
[C<--empty>]
[C<--index> I<title>]



( run in 0.920 second using v1.01-cache-2.11-cpan-71847e10f99 )