| 1 | 
 #! /usr/bin/env perl | 
 #! /usr/bin/perl | 
| 2 | 
  | 
  | 
| 3 | 
 #  Ed Hill | 
 #  Ed Hill | 
| 4 | 
 #  Tue Dec  2 20:17:27 EST 2003 | 
 #  Tue Dec  2 20:17:27 EST 2003 | 
| 5 | 
  | 
  | 
| 6 | 
 #  Assemble the web pages from XML files. | 
 #  Assemble the web pages from XML files. | 
| 7 | 
  | 
  | 
| 8 | 
 open(TOP,"<top_list.txt") or die "ERROR: can't open \"top_list.txt\"\n"; | 
 $topdir = "."; | 
| 9 | 
 while($line = <TOP>)  { | 
 $file_list = $topdir . "/order.txt"; | 
| 10 | 
     chomp($line); | 
 open(ORDER,$file_list) or die "ERROR: can't open \"$file_list\"\n"; | 
| 11 | 
     length($line) > 0 and @top_list[$top_list++] = $line; | 
 $_ = join(" ", <ORDER>); | 
| 12 | 
 } | 
 s/\n//s; | 
| 13 | 
  | 
 @flist = split(" ", $_); | 
| 14 | 
  | 
  | 
| 15 | 
 open(TEMPL,"<template.xml") or die "ERROR: can't open \"template.xml\"\n"; | 
 open(TEMPL,"<template.xml") or die "ERROR: can't open \"template.xml\"\n"; | 
| 16 | 
 $template = join "", <TEMPL>; | 
 $template = join "", <TEMPL>; | 
| 17 | 
  | 
  | 
| 18 | 
 mkdir html; | 
 system("rm -rf html"); | 
| 19 | 
  | 
 system("mkdir html"); | 
| 20 | 
  | 
  | 
| 21 | 
 foreach $file (@top_list)  { | 
 print "Parsing files ...  "; | 
| 22 | 
  | 
 foreach $file (@flist) { | 
| 23 | 
  | 
     $fname = $topdir . "/" . $file; | 
| 24 | 
  | 
     open(INF,$fname) or die "ERROR: can't open \"$fname\"\n"; | 
| 25 | 
  | 
     $all = join "", <INF>; | 
| 26 | 
  | 
     $_ = $all; | 
| 27 | 
  | 
     /<meta *name="add_name_0" *content="(.*)"/  and $k0 = $1; | 
| 28 | 
  | 
     $_ = $all; | 
| 29 | 
  | 
     /<meta *name="add_name_1" *content="(.*)"/ and $k1 = $1; | 
| 30 | 
  | 
     $name0{$file} = $k0; | 
| 31 | 
  | 
     $name1{$file} = $k1; | 
| 32 | 
  | 
     close(INF); | 
| 33 | 
  | 
 } | 
| 34 | 
  | 
 print "  done\n"; | 
| 35 | 
  | 
  | 
| 36 | 
     $fname = "<./" . $file . ".xml"; | 
 print "Generating XHTML ..."; | 
| 37 | 
  | 
 foreach $file (@flist) { | 
| 38 | 
  | 
      | 
| 39 | 
  | 
     $fname = "<" . $topdir . "/" . $file; | 
| 40 | 
     open(INF,$fname) or die "ERROR: can't open \"$fname\"\n"; | 
     open(INF,$fname) or die "ERROR: can't open \"$fname\"\n"; | 
| 41 | 
     $f_all = join "", <INF>; | 
     $f_all = join "", <INF>; | 
| 42 | 
  | 
     close(INF); | 
| 43 | 
  | 
  | 
| 44 | 
  | 
     #  Get the body | 
| 45 | 
     $_ = $f_all; | 
     $_ = $f_all; | 
| 46 | 
     /<body>(.*)<\/body>/s and $body = $1; | 
     /<body>(.*)<\/body>/s and $body = $1; | 
| 47 | 
  | 
  | 
| 48 | 
  | 
     #  Get the title | 
| 49 | 
     $_ = $f_all; | 
     $_ = $f_all; | 
| 50 | 
     /<meta *name="add_title" *content="(.*)"/ and $title = $1; | 
     /<meta *name="add_title" *content="(.*)"/ and $title = $1; | 
| 51 | 
  | 
  | 
| 52 | 
     $_ = $f_all; | 
     #  Create the menu | 
| 53 | 
     /<meta *name="add_name_0" *content="(.*)"/ and $name = $1; | 
     $cname = $name0{$file}; | 
 | 
  | 
  | 
| 54 | 
     $menu = ""; | 
     $menu = ""; | 
| 55 | 
     foreach $f (@top_list)  { | 
     foreach $fm (@flist) { | 
| 56 | 
         if ($f ne $file) { | 
         $ind = ""; | 
| 57 | 
             $tmp = "<a href=\"./" . $f . ".html\">" . $f . "</a><br />\n"; | 
         $name = $name0{$fm}; | 
| 58 | 
  | 
         if (length($name1{$fm}) > 0) { | 
| 59 | 
  | 
             $ind = "   "; | 
| 60 | 
  | 
             $name = $name1{$fm}; | 
| 61 | 
  | 
         } | 
| 62 | 
  | 
         if (length($ind) > 0 and ($name0{$fm} ne $cname)) { | 
| 63 | 
  | 
             next; | 
| 64 | 
  | 
         } | 
| 65 | 
  | 
         if ($fm ne $file) { | 
| 66 | 
  | 
             $_ = $fm; | 
| 67 | 
  | 
             s/.xml/.html/; | 
| 68 | 
  | 
             $tmp = $ind . "<a href=\"./" . $_ . "\">" . $name . "</a><br />\n"; | 
| 69 | 
         } else { | 
         } else { | 
| 70 | 
             $tmp = "<b>" . $name . "</b>\n"; | 
             $tmp = $ind . "<b>" . $name . "</b><br />\n"; | 
| 71 | 
         } | 
         } | 
| 72 | 
         $menu = join "", $menu, $tmp; | 
         $menu = join "", $menu, $tmp; | 
| 73 | 
     } | 
     } | 
| 74 | 
  | 
     # $tmp = "<a href=\"./htdig\" />Search</a><br />\n"; | 
| 75 | 
  | 
     # $menu = join "", $menu, $tmp; | 
| 76 | 
  | 
  | 
| 77 | 
  | 
     #  Create the output | 
| 78 | 
     $_ = $template; | 
     $_ = $template; | 
| 79 | 
     s/<!--ADDTITLE-->/$title/s; | 
     s/<!--ADDTITLE-->/$title/s; | 
| 80 | 
     s/<!--ADDMENU-->/$menu/s; | 
     s/<!--ADDMENU-->/$menu/s; | 
| 81 | 
     s/<!--ADDCONTENT-->/$body/s; | 
     s/<!--ADDCONTENT-->/$body/s; | 
| 82 | 
  | 
     $content = $_; | 
| 83 | 
  | 
  | 
| 84 | 
     $out_name = ">./html/" . $file . ".html"; | 
     $_ = $file; | 
| 85 | 
  | 
     s/.xml/.html/; | 
| 86 | 
  | 
     $out_name = ">./html/" . $_; | 
| 87 | 
     open(OUT,$out_name) or die "ERROR: can't open \"$out_name\"\n"; | 
     open(OUT,$out_name) or die "ERROR: can't open \"$out_name\"\n"; | 
| 88 | 
     print OUT $_; | 
     print OUT $content; | 
| 89 | 
  | 
  | 
| 90 | 
     close(OUT); | 
     close(OUT); | 
 | 
     close(INF); | 
  | 
| 91 | 
 } | 
 } | 
| 92 | 
  | 
 print "  done\n"; | 
| 93 | 
  | 
  |