Edit

IABSD.fr/xenocara/util/imake/mkhtmlindex.pl

Branch :

  • Show log

    Commit

  • Author : matthieu
    Date : 2010-10-31 16:54:24
    Hash : 8fe31817
    Message : Update to imake 1.0.4. No functional change.

  • util/imake/mkhtmlindex.pl
  • #!/usr/bin/perl
    #
    # Copyright © 2000,2001 by VA Linux Systems, Inc.
    #
    # Generate index files for HTML man pages.
    #
    # Author:	David Dawes <dawes@xfree86.org>
    #
    
    #
    # Best viewed with tabs set to 4
    #
    
    if ($#ARGV ne 0) {
    	print STDERR "Usage: mkhtmlindex.pl htmlmandir\n";
    	exit 1;
    }
    
    $dir = $ARGV[0];
    
    if (! -d $dir) {
    	print STDERR "$dir is not a directory\n";
    	exit 1;
    }
    
    @vollist = ("1", "2", "3", "4", "5", "6", "7", "8", "9", "o", "l", "n", "p");
    
    $indexprefix = "manindex";
    
    foreach $vol (@vollist) {
    	$empty = "yes";
    	$indexname="$dir/$indexprefix$vol.html";
    
    	# print "Processing volume $vol\n";
    
    	open(mindex, ">$indexname") || die "Can't create $indexname";
    	opendir(dir, "$dir") || die "Can't open $dir";
    
    	print mindex <<EOF;
    <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
    <HTML>
    <HEAD>
    <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
    <TITLE>X.Org Manual pages: Section $vol</TITLE>
    </HEAD>
    <BODY BGCOLOR="#efefef" TEXT="black" LINK="blue" VLINK="#551A8B" ALINK="red">
    
    <H1>X.Org Manual pages: Section $vol</H1>
    <P>
    <UL>
    EOF
    
    	foreach $file (sort readdir dir) {
    		if ($file =~ "\.$vol\.html") {
    			open(file, "<$dir/$file") || die "Can't open $dir/$file";
    			while (<file>) {
    				chop;
    				if (/^<[hH]2>/) {
    					if (! /<\/[hH]2>$/) {
    						while (<file> && ! /<\/[hH]2>$/) {
    							;
    						}
    					}
    					$heading = "";
    					while (<file>) {
    						if (/^<[hH]2>/) {
    							last;
    						}
    						$heading = "$heading" . "$_";
    					}
    					if ($heading) {
    						undef $empty;
    						$heading =~ s/--/-/;
    						($name, $descr) = split(/-/, $heading, 2);
    						$file =~ /(.*)\.$vol\.html/;
    						$fname = $1;
    						$descr =~ s/<[pP]>//g;
    						print mindex
    							"<LI><A href=\"$file\">$fname</A> - $descr</LI>";
    					}
    					last;
    				}
    			}
    			close file;
    		}
    	}
    
    	print mindex <<EOF;
    </UL>
    <P>
    </BODY>
    </HTML>
    EOF
    
    	close mindex;
    	closedir dir;
    	if (defined $empty) {
    		# print "Removing empty $indexname\n";
    		unlink $indexname;
    	}
    }