use Config; # for config options in the makefile
use Getopt::Long; # for command-line parsing
use Cwd;
-use Pod::Html;
+use Pod::Html 'anchorify';
=head1 NAME
}
foreach my $dir (@splithead) {
+ (my $pod = $dir) =~ s,^.*/,,;
$dir .= ".pod" unless $dir =~ /(\.pod|\.pm)$/;
# let pod2html create the file
runpod2html($dir, 1);
$/ = "";
my @data = ();
while (<H>) {
- last if /NAME=/;
- $_ =~ s{HREF="#(.*)">}{
- my $url = "$file/$1.html" ;
- $url = Pod::Html::relativize_url( $url, "$file.html" )
- if ( ! defined $Options{htmlroot} || $Options{htmlroot} eq '' );
- "HREF=\"$url\">" ;
- }eg;
+ last if /name="name"/i;
+ $_ =~ s{href="#(.*)">}{
+ my $url = "$pod/$1.html" ;
+ $url = Pod::Html::relativize_url( $url, "$file.html" )
+ if ( ! defined $Options{htmlroot} || $Options{htmlroot} eq '' );
+ "href=\"$url\">" ;
+ }egi;
push @data, $_;
- }
+ }
close(H);
# now rewrite the file
sub create_index {
my($html, $dir) = @_;
+ (my $pod = $dir) =~ s,^.*/,,;
my(@files, @filedata, @index, $file);
my($lcp1,$lcp2);
close(IN);
# pull out the NAME section
- my $name;
- ($name) = grep(/NAME=/, @filedata);
- ($lcp1,$lcp2) = ($name =~ m,/H1>\s(\S+)\s[\s-]*(.*?)\s*$,sm);
- if (defined $lcp1 and $lcp1 eq '<P>') { # Uninteresting. Try again.
- ($lcp1,$lcp2) = ($name =~ m,/H1>\s<P>\s(\S+)\s[\s-]*(.*?)\s*$,sm);
+ my $name;
+ ($name) = grep(/name="name"/i, @filedata);
+ ($lcp1,$lcp2) = ($name =~ m,/H1>\s(\S+)\s[\s-]*(.*?)\s*$,smi);
+ if (defined $lcp1 and $lcp1 =~ m,^<P>$,i) { # Uninteresting. Try again.
+ ($lcp1,$lcp2) = ($name =~ m,/H1>\s<P>\s*(\S+)\s[\s-]*(.*?)\s*$,smi);
}
- my $url= "$dir/$file" ;
+ my $url= "$pod/$file" ;
if ( ! defined $Options{htmlroot} || $Options{htmlroot} eq '' ) {
- $url = Pod::Html::relativize_url( "$dir/$file", $html ) ;
+ $url = Pod::Html::relativize_url( "$pod/$file", $html ) ;
}
- print HTML qq(<A HREF="$url">);
- print HTML "<DT>$lcp1</A><DD>$lcp2\n" if defined $lcp1;
-# print HTML qq(<A HREF="$url">$lcp1</A><BR>\n") if defined $lcp1;
+ if (defined $lcp1) {
+ print HTML qq(<DT><A HREF="$url">);
+ print HTML "$lcp1</A></DT><DD>$lcp2</DD>\n";
+ }
next;
for (@index) {
s/<!-- INDEX BEGIN -->(\s*<!--)(.*)(-->\s*)<!-- INDEX END -->/$lcp2/s;
s,#,$dir/$file#,g;
- # print HTML "$_\n";
print HTML "$_\n<P><HR><P>\n";
}
}
foreach $pod (@splithead) {
# figure out the directory name and filename
$pod =~ s,^([^/]*)$,/$1,;
- $pod =~ m,(.*?)/(.*?)(\.pod)?$,;
+ $pod =~ m,(.*)/(.*?)(\.pod)?$,;
$dirname = $1;
$filename = "$2.pod";
print "splitting files by item.\n" if $verbose && $#splititem >= 0;
$pwd = getcwd();
- my $splitter = absolute_path($pwd, "$splitpod/splitpod");
+ my $splitter = absolute_path($pwd, "$splitpod/splitpod");
foreach my $pod (@splititem) {
# figure out the directory to split into
$pod =~ s,^([^/]*)$,/$1,;
- $pod =~ m,(.*?)/(.*?)(\.pod)?$,;
+ $pod =~ m,(.*)/(.*?)(\.pod)?$,;
$dirname = "$1/$2";
$filename = "$2.pod";
die "$0: error changing to directory $podroot/$dirname: $!\n";
die "$splitter not found. Use '-splitpod dir' option.\n"
unless -f $splitter;
- system("perl", $splitter, "../$filename") &&
+ system($^X, $splitter, "../$filename") &&
warn "$0: error running '$splitter ../$filename'"
." from $podroot/$dirname";
}
# L<> links as necessary.
my %heads = ();
foreach $i (0..$#poddata) {
- $heads{htmlize($1)} = 1 if $poddata[$i] =~ /=head[1-6]\s+(.*)/;
+ $heads{anchorify($1)} = 1 if $poddata[$i] =~ /=head[1-6]\s+(.*)/;
}
# create a directory of a similar name and store all the
# determine an appropriate filename (this must correspond with
# what pod2html will try and guess)
# $poddata[$i] =~ /^\s*=head[1-6]\s+(.*)/;
- $file = "$dir/" . htmlize($section) . ".pod";
+ $file = "$dir/" . anchorify($section) . ".pod";
# create the new .pod file
print "\tcreating $poddir/$file\n" if $verbose;
open(SPLITOUT, ">$poddir/$file") ||
die "$0: error opening $poddir/$file for output: $!\n";
$poddata[$i] =~ s,L<([^<>]*)>,
- defined $heads{htmlize($1)} ? "L<$dir/$1>" : "L<$1>"
- ,ge;
+ defined $heads{anchorify($1)} ? "L<$dir/$1>" : "L<$1>"
+ ,ge;
print SPLITOUT $poddata[$i]."\n\n";
print SPLITOUT "=over 4\n\n";
print SPLITOUT "=item *\n\nBack to L<$dir/\"$prevsec\">\n\n" if $prevsec;
next if grep($_ eq "$podroot/$pod.pod", @$ignore);
# check if a .pm files exists too
- if (grep($_ eq "$pod.pm", @pmlist)) {
+ if (grep($_ eq $pod, @pmlist)) {
print "$0: Warning both `$podroot/$pod.pod' and "
. "`$podroot/$pod.pm' exist, using pod\n";
push(@ignore, "$pod.pm");
# invoke pod2html
print "$podroot/$pod => $htmldir/$html\n" if $verbose;
-#system("./pod2html",
- Pod::Html'pod2html(
- #Pod::Html'pod2html($pod2html,
+ Pod::Html::pod2html(
"--htmldir=$htmldir",
"--htmlroot=$htmlroot",
"--podpath=".join(":", @podpath),
"--infile=$podroot/$pod", "--outfile=$htmldir/$html");
die "$0: error running $pod2html: $!\n" if $?;
}
-
-sub htmlize { htmlify(0, @_) }