3 # build html hierarchy of pod files using pod2html
5 # $Id: mkpodweb.perl,v 1.2 2000/08/02 10:00:22 nakano Exp $
8 $epath = `dirname $0`; chomp $epath;
9 unshift (@INC, $epath);
11 use JMtl ('line2hash', 'hash2line');
14 my ($idx_header, $idx_footer);
17 # $PODROOT は CVS リポジトリの JM/pod,
18 # $WWWROOT は web の html コンテンツのトップ,
19 # $POD2HTML は pod2html コマンドを想定.
21 if (@ARGV < 3) {die "$0 srcroot destroot pod2html\n"};
23 my $PODROOT = $ARGV[0];
24 unless (-d $PODROOT) {die "$PODROOT does not exist\n"};
26 my $WWWROOT = $ARGV[1];
28 my $POD2HTML = $ARGV[2];
29 unless (-x $POD2HTML) {die "$POD2HTML does not executable\n"};
32 # for debugging purpose:
34 #my $PODROOT = "/home/nakano/text/JM/imp/pod";
35 #my $WWWROOT = "/home/nakano/public_html/JMwww/html";
36 #my $MAN2HTML = "/home/nakano/bin/man2html";
37 #my $YAMAN2HTML = "/home/nakano/text/JM/head/admin/tools/yaman2html.perl";
40 # man2html 出力に対して置換する各リンク (決め打ち(^^;)
42 my $PODWROOT='../../pod';
43 my $MAIN='<A HREF="../../index.html">JM Home Page</A>';
44 my $CSS='<LINK REL="stylesheet" TYPE="text/css" HREF="../../jmpod.css">';
46 my (%pod_hash, %page_name);
48 # $PODROOT/$pkg/translation_list の scan.
50 print "scanning translation_list's...\n";
51 open RL,"find $PODROOT -name translation_list|";
56 unless(/.*pod\/([^\/]*)\/translation_list/){next;}
59 open TL, $tl || die "cannot open $tl";
63 my %ti = line2hash($_);
64 my $name = $ti{fname};
65 my $page = "$pkg,$name";
67 if ($ti{kind} eq "roff" && $ti{stat} =~ /^up/) {
68 my $src = "$pkg/release/$name.pod";
69 $pod_hash{"$page"} = $src;
70 print "collect pod: $page <= $src\n";
74 if ($ti{kind} eq "roff" && $ti{stat} =~ /^cnt/) {
75 my $src = "$pkg/contrib/$name.pod";
76 $pod_hash{"$page"} = $src;
77 print "collect pod: $page <= $src\n";
85 foreach my $key (sort keys %page_name){
86 my $num = $#{$page_name{$key}} + 1;
96 foreach my $fkey (sort keys %pod_hash){
97 my ($pkg, $name) = split /,/, $fkey;
99 my $hdir = "$WWWROOT/$pkg";
100 my $hfile = "$hdir/$name.pod.html";
102 system("mkdir -p $hdir");
104 print "converting $pkg/$name.pod...";
105 my $podpage = "$PODROOT/$pod_hash{$fkey}";
108 my $PODP = "<A HREF=\"$PODWROOT/$pod_hash{$fkey}\">pod page</A>";
109 my $NAVI = "$MAIN\n$PODP";
111 open P2H, "$POD2HTML $podpage |";
112 open WL,"| nkf -j > $hfile";
115 s/\<\/HEAD\>/$CSS\n<HEAD>\n/;
116 s/<BODY>/<BODY>$NAVI\n<HR>\n/;
125 # Fix em-dashes... It may not be parsed well by JP browsers.
128 # Add </P> to the end of paragraphs
129 if (/^\<P\>/ .. /^$/)
131 print WL "</P>\n" if (/^$/);
137 system ("rm -f pod2html-*cache");