diff options
author | Gurusamy Sarathy <gsar@cpan.org> | 1999-07-27 07:29:59 +0000 |
---|---|---|
committer | Gurusamy Sarathy <gsar@cpan.org> | 1999-07-27 07:29:59 +0000 |
commit | 6055f9d42166344699550b8045e96c47c97d767c (patch) | |
tree | 661c8ddbfc0103ec7fdb0664202407a9498cb539 /pod/pod2text.PL | |
parent | 72d0d2ff8e3f74c698f71a78043a8eb7b8aa05d0 (diff) | |
download | perl-6055f9d42166344699550b8045e96c47c97d767c.tar.gz |
replace Pod::Text with Pod::SimpleText v0.01 (thanks
to Russ Allbery <rra@stanford.edu>); s/Simple// and
s/pod2txt/pod2text/ etc.
p4raw-id: //depot/perl@3788
Diffstat (limited to 'pod/pod2text.PL')
-rw-r--r-- | pod/pod2text.PL | 165 |
1 files changed, 160 insertions, 5 deletions
diff --git a/pod/pod2text.PL b/pod/pod2text.PL index 94516c3997..92b26feceb 100644 --- a/pod/pod2text.PL +++ b/pod/pod2text.PL @@ -35,14 +35,169 @@ $Config{startperl} print OUT <<'!NO!SUBS!'; -use Pod::Text; +$ID = q$Id: pod2text,v 0.1 1999/06/13 02:42:18 eagle Exp $; -if(@ARGV) { - pod2text($ARGV[0]); -} else { - pod2text("<&STDIN"); +# pod2text -- Convert POD data to formatted ASCII text. +# Copyright 1999 by Russ Allbery <rra@stanford.edu> +# +# This program is free software; you can redistribute it and/or modify it +# under the same terms as Perl itself. +# +# The driver script for Pod::Text, Pod::Text::Termcap, and +# Pod::Text::Color, invoked by perldoc -t among other things. + +require 5.004; + +use Getopt::Long qw(GetOptions); +use Pod::Text (); +use Pod::Usage qw(pod2usage); + +use strict; +use vars qw($ID); + +# Take an initial pass through our options, looking for one of the form +# -<number>. We turn that into -w <number> for compatibility with the +# original pod2text script. +for (my $i = 0; $i < @ARGV; $i++) { + last if $ARGV[$i] =~ /^--$/; + if ($ARGV[$i] =~ /^-(\d+)$/) { + splice (@ARGV, $i++, 1, '-w', $1); + } +} + +# Parse our options. Use the same names as Pod::Text for simplicity, +# and default to sentence boundaries turned off for compatibility. +my %options; +$options{termcap} = -t STDOUT; +$options{sentence} = 0; +Getopt::Long::config ('bundling'); +GetOptions (\%options, 'alt|a', 'color|c', 'help|h', 'indent|i=i', + 'loose|l', 'sentence|s', 'termcap|t!', 'width|w=i') or exit 1; +pod2usage (1) if $options{help}; + +# Figure out what formatter we're going to use. -c overrides -t. +my $formatter = 'Pod::Text'; +if ($options{color}) { + $formatter = 'Pod::Text::Color'; + require Pod::Text::Color; +} elsif ($options{termcap}) { + $formatter = 'Pod::Text::Termcap'; + require Pod::Text::Termcap; } +delete @options{'color', 'termcap'}; + +# Initialize and run the formatter. +my $parser = $formatter->new (%options); +$parser->parse_from_file (@ARGV); + +__END__ + +=head1 NAME + +pod2text - Convert POD data to formatted ASCII text + +=head1 SYNOPSIS + +pod2text [B<-aclst>] [B<-i> I<indent>] [B<-w> I<width>] [I<input> [I<output>]] + +pod2text B<-h> + +=head1 DESCRIPTION + +B<pod2text> is a front-end for Pod::Text and its subclasses. It uses +them to generate formatted ASCII text from POD source. It can optionally +use either termcap sequences or ANSI color escape sequences to format the +text. + +I<input> is the file to read for POD source (the POD can be embedded in +code). If I<input> isn't given, it defaults to STDIN. I<output>, if given, +is the file to which to write the formatted output. If I<output> isn't +given, the formatted output is written to STDOUT. + +=head1 OPTIONS + +=over 4 + +=item B<-a>, B<--alt> + +Use an alternate output format that, among other things, uses a different +heading style and marks C<=item> entries with a colon in the left margin. + +=item B<-c>, B<--color> + +Format the output with ANSI color escape sequences. Using this option +requires that Term::ANSIColor be installed on your system. + +=item B<-i> I<indent>, B<--indent=>I<indent> + +Set the number of spaces to indent regular text, and the default indentation +for C<=over> blocks. Defaults to 4 spaces if this option isn't given. + +=item B<-l>, B<--loose> + +Print a blank line after a C<=head1> heading. Normally, no blank line is +printed after C<=head1>, although one is still printed after C<=head2>. +This is the default because it's the expected formatting for manual pages; +if you're formatting arbitrary text documents, using this option is +recommended. + +=item B<-s>, B<--sentence> + +Assume each sentence ends in two spaces and try to preserve that spacing. +Without this option, all consecutive whitespace in non-verbatim paragraphs +is compressed into a single space. + +=item B<-t>, B<--termcap> + +Try to determine the width of the screen and the bold and underline +sequences for the terminal from termcap, and use that information in +formatting the output. Output will be wrapped at two columns less than the +width of your terminal device. Using this option requires that your system +have a termcap file somewhere where Term::Cap can find it. With this +option, the output of B<pod2text> will contain terminal control sequences for +your current terminal type. + +=item B<-w>, B<--width=>I<width>, B<->I<width> + +The column at which to wrap text on the right-hand side. Defaults to 76, +unless B<-t> is given, in which case it's two columns less than the width of +your terminal device. + +=back + +=head1 ENVIRONMENT + +=over 4 + +=item COLUMNS + +If B<-t> is given, B<pod2text> will take the current width of your screen +from this environment variable, if available. It overrides terminal width +information in TERMCAP. + +=item TERMCAP + +If B<-t> is given, B<pod2text> will use the contents of this environment +variable if available to determine the correct formatting sequences for your +current terminal device. + +=back + +=head1 DIAGNOSTICS + +If B<pod2text> fails with POD errors, see L<Pod::Text> and +L<Pod::Parser> for information about what those errors might mean. + +=head1 SEE ALSO + +L<Pod::Text|Pod::Text>, L<Pod::Text::Color|Pod::Text::Color>, +L<Pod::Text::Termcap|Pod::Text::Termcap>, L<Pod::Parser|Pod::Parser> + +=head1 AUTHOR + +Russ Allbery E<lt>rra@stanford.eduE<gt>. +=cut !NO!SUBS! close OUT or die "Can't close $file: $!"; |