| 1 | edhill | 1.1 | #! /usr/bin/env perl | 
| 2 |  |  |  | 
| 3 |  |  | #  Ed Hill | 
| 4 |  |  | #  Tue Dec  2 20:17:27 EST 2003 | 
| 5 |  |  |  | 
| 6 |  |  | #  Assemble the web pages from XML files. | 
| 7 |  |  |  | 
| 8 |  |  | open(TOP,"<top_list.txt") or die "ERROR: can't open \"top_list.txt\"\n"; | 
| 9 |  |  | while($line = <TOP>)  { | 
| 10 |  |  | chomp($line); | 
| 11 |  |  | length($line) > 0 and @top_list[$top_list++] = $line; | 
| 12 |  |  | } | 
| 13 |  |  |  | 
| 14 |  |  | open(TEMPL,"<template.xml") or die "ERROR: can't open \"template.xml\"\n"; | 
| 15 |  |  | $template = join "", <TEMPL>; | 
| 16 |  |  |  | 
| 17 |  |  | mkdir html; | 
| 18 |  |  |  | 
| 19 |  |  | foreach $file (@top_list)  { | 
| 20 |  |  |  | 
| 21 |  |  | $fname = "<./" . $file . ".xml"; | 
| 22 |  |  | open(INF,$fname) or die "ERROR: can't open \"$fname\"\n"; | 
| 23 |  |  | $f_all = join "", <INF>; | 
| 24 |  |  |  | 
| 25 |  |  | $_ = $f_all; | 
| 26 |  |  | /<body>(.*)<\/body>/s and $body = $1; | 
| 27 |  |  |  | 
| 28 |  |  | $_ = $f_all; | 
| 29 |  |  | /<meta *name="add_title" *content="(.*)"/ and $title = $1; | 
| 30 |  |  |  | 
| 31 |  |  | $_ = $f_all; | 
| 32 |  |  | /<meta *name="add_name_0" *content="(.*)"/ and $name = $1; | 
| 33 |  |  |  | 
| 34 |  |  | $menu = ""; | 
| 35 |  |  | foreach $f (@top_list)  { | 
| 36 |  |  | if ($f ne $file) { | 
| 37 |  |  | $tmp = "<a href=\"./" . $f . ".html\">" . $f . "</a><br />\n"; | 
| 38 |  |  | } else { | 
| 39 |  |  | $tmp = "<b>" . $name . "</b>\n"; | 
| 40 |  |  | } | 
| 41 |  |  | $menu = join "", $menu, $tmp; | 
| 42 |  |  | } | 
| 43 |  |  |  | 
| 44 |  |  | $_ = $template; | 
| 45 |  |  | s/<!--ADDTITLE-->/$title/s; | 
| 46 |  |  | s/<!--ADDMENU-->/$menu/s; | 
| 47 |  |  | s/<!--ADDCONTENT-->/$body/s; | 
| 48 |  |  |  | 
| 49 |  |  | $out_name = ">./html/" . $file . ".html"; | 
| 50 |  |  | open(OUT,$out_name) or die "ERROR: can't open \"$out_name\"\n"; | 
| 51 |  |  | print OUT $_; | 
| 52 |  |  |  | 
| 53 |  |  | close(OUT); | 
| 54 |  |  | close(INF); | 
| 55 |  |  | } | 
| 56 |  |  |  |