This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
Integrate mainline
[perl5.git] / pod / pod2html.PL
CommitLineData
4633a7c4
LW
1#!/usr/local/bin/perl
2
3use Config;
4use File::Basename qw(&basename &dirname);
3b5ca523 5use Cwd;
4633a7c4
LW
6
7# List explicitly here the variables you want Configure to
8# generate. Metaconfig only looks for shell variables, so you
9# have to mention them as if they were shell variables, not
10# %Config entries. Thus you write
11# $startperl
12# to ensure Configure will look for $Config{startperl}.
13
3b5ca523
GS
14# This forces PL files to create target in same directory as PL file.
15# This is so that make depend always knows where to find PL derivatives.
16$origdir = cwd;
17chdir dirname($0);
18$file = basename($0, '.PL');
774d564b 19$file .= '.com' if $^O eq 'VMS';
4633a7c4
LW
20
21open OUT,">$file" or die "Can't create $file: $!";
22
23print "Extracting $file (with variable substitutions)\n";
24
25# In this section, perl variables will be expanded during extraction.
26# You can use $Config{...} to use Configure variables.
27
28print OUT <<"!GROK!THIS!";
5f05dabc 29$Config{startperl}
30 eval 'exec $Config{perlpath} -S \$0 \${1+"\$@"}'
31 if \$running_under_some_shell;
4633a7c4
LW
32!GROK!THIS!
33
34# In the following, perl variables are not expanded during extraction.
35
36print OUT <<'!NO!SUBS!';
54310121 37=pod
5f05dabc 38
54310121 39=head1 NAME
5e71e875 40
54310121 41pod2html - convert .pod files to .html files
42
43=head1 SYNOPSIS
44
45 pod2html --help --htmlroot=<name> --infile=<name> --outfile=<name>
46 --podpath=<name>:...:<name> --podroot=<name>
47 --libpods=<name>:...:<name> --recurse --norecurse --verbose
48 --index --noindex --title=<name>
49
50=head1 DESCRIPTION
51
52Converts files from pod format (see L<perlpod>) to HTML format.
53
54=head1 ARGUMENTS
55
56pod2html takes the following arguments:
57
58=over 4
59
60=item help
61
62 --help
63
64Displays the usage message.
65
66=item htmlroot
67
68 --htmlroot=name
69
70Sets the base URL for the HTML files. When cross-references are made,
71the HTML root is prepended to the URL.
72
73=item infile
74
75 --infile=name
76
77Specify the pod file to convert. Input is taken from STDIN if no
78infile is specified.
79
80=item outfile
81
82 --outfile=name
83
84Specify the HTML file to create. Output goes to STDOUT if no outfile
85is specified.
86
87=item podroot
88
89 --podroot=name
90
91Specify the base directory for finding library pods.
92
93=item podpath
94
95 --podpath=name:...:name
96
97Specify which subdirectories of the podroot contain pod files whose
98HTML converted forms can be linked-to in cross-references.
99
100=item libpods
101
102 --libpods=name:...:name
103
104List of page names (eg, "perlfunc") which contain linkable C<=item>s.
105
106=item netscape
107
108 --netscape
109
110Use Netscape HTML directives when applicable.
111
112=item nonetscape
113
114 --nonetscape
115
116Do not use Netscape HTML directives (default).
117
118=item index
119
120 --index
121
122Generate an index at the top of the HTML file (default behaviour).
123
124=item noindex
125
126 --noindex
127
128Do not generate an index at the top of the HTML file.
129
130
131=item recurse
132
133 --recurse
134
135Recurse into subdirectories specified in podpath (default behaviour).
136
137=item norecurse
138
139 --norecurse
140
141Do not recurse into subdirectories specified in podpath.
142
143=item title
144
145 --title=title
146
147Specify the title of the resulting HTML file.
148
149=item verbose
150
151 --verbose
152
153Display progress messages.
154
155=back
156
157=head1 AUTHOR
158
159Tom Christiansen, E<lt>tchrist@perl.comE<gt>.
160
161=head1 BUGS
162
163See L<Pod::Html> for a list of known bugs in the translator.
164
165=head1 SEE ALSO
166
c1bd1124 167L<perlpod>, L<Pod::Html>
54310121 168
169=head1 COPYRIGHT
170
171This program is distributed under the Artistic License.
172
173=cut
174
175use Pod::Html;
176
177pod2html @ARGV;
4633a7c4
LW
178!NO!SUBS!
179
180close OUT or die "Can't close $file: $!";
181chmod 0755, $file or die "Can't reset permissions for $file: $!\n";
182exec("$Config{'eunicefix'} $file") if $Config{'eunicefix'} ne ':';
3b5ca523 183chdir $origdir;