package Pod::Outline; use strict; use Pod::Simple::Text (); use Text::Wrap; our @ISA = qw( Pod::Simple::Text ); =head1 NAME Pod::Outline - For generating outlines of POD files =cut use warnings; use strict; =head1 VERSION Version 0.10 =cut our $VERSION = '0.10'; =head1 SYNOPSIS Subclass of L designed for outlines. =cut our $INDENT = 4; sub handle_text { $_[0]{'Thispara'} .= $_[1] } sub start_Para { $_[0]{'Thispara'} = '' } sub start_head1 { _start_head(1,@_) } sub start_head2 { _start_head(2,@_) } sub start_head3 { _start_head(3,@_) } sub start_head4 { _start_head(4,@_) } sub _start_head { my $depth = shift; my $self = shift; $self->{Depth} = $depth; $self->{Thispara} = " " x ($INDENT * ($depth-1)); } sub start_Verbatim { $_[0]{'Thispara'} = '' } sub start_item_bullet { $_[0]{'Thispara'} = '* ' } sub start_item_number { $_[0]{'Thispara'} = "$_[1]{'number'}. " } sub start_item_text { $_[0]{'Thispara'} = '' } # . . . . . Now the actual formatters: sub end_head1 { $_[0]->emit_par(-1 * $INDENT) } sub end_head2 { $_[0]->emit_par(-2 * $INDENT) } sub end_head3 { $_[0]->emit_par(-3 * $INDENT) } sub end_head4 { $_[0]->emit_par(-4 * $INDENT) } sub end_Para { $_[0]->emit_par() } sub end_item_bullet { $_[0]->emit_par() } sub end_item_number { $_[0]->emit_par() } sub end_item_text { $_[0]->emit_par(int(.5*$INDENT))} sub emit_par { my $self = shift; my $tweak_indent = shift; my $nspaces = ($INDENT * $self->{'Depth'}) + ($tweak_indent||0); my $indent = ' ' x $nspaces; # Yes, 'STRING' x NEGATIVE gives '', same as 'STRING' x 0 $self->{'Thispara'} =~ tr{\xAD}{}d if Pod::Simple::ASCII; my $out = Text::Wrap::wrap($indent, $indent, $self->{'Thispara'} .= "\n"); $out =~ tr{\xA0}{ } if Pod::Simple::ASCII; print {$self->{'output_fh'}} $out, "\n"; $self->{'Thispara'} = ''; return; } # emit_par =head1 AUTHOR Andy Lester, C<< >> =head1 BUGS Please report any bugs or feature requests to C, or through the web interface at L. I will be notified, and then you'll automatically be notified of progress on your bug as I make changes. =head1 COPYRIGHT & LICENSE Copyright 2004 Andy Lester, All Rights Reserved. This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself. =cut 1; # End of Pod::Outline