#!/usr/bin/perl #v1.02 08/10/95 #Amendments history at end. #(c) IK McDonald 1995 #First Pass: #Concatenate subsequent entries and split into an array at the '&' signs. require "ctime.pl"; @news = split(/\n& /,join("","\n",grep(!/& (.*)\d\n/, <>))); print("Pass 1 (split into array at '&' lines) completed.\n"); #Second Pass: #Move from standard array to associative array. foreach $entry (@news) { # %news{substr($entry,0,rindex($entry,"\n"))}=$entry #print substr($entry,0,index($entry,"\n")),"|",index($entry,"\n"),"|\n"; if ($entry =~ /(.*\S) *\n/) { $news{$1}=$entry; } } print("Pass 2 (name array elements) completed.\n"); #Second Pass, part b: #Generate a filenames array. foreach $entry (keys(%news)) { $filename{$entry}="\L$entry"; $filename{$entry}=~ s/\//slash/g ; $filename{$entry}=~ s/\@/atsign/g ; $filename{$entry}=~ s/\*/asterix/g ; $filename{$entry}=~ s/ /space/g ; $filename{$entry}=reverse($filename{$entry}) . ".html" ; $filename{$entry}=~ s/pleh\.html/help.html/ ; } print("Pass 2b (generate filenames) completed.\n"); #Pass 2c: #Replace '<"&>' with escape sequences" foreach $keyname (keys(%news)) { $news{$keyname} =~ s/&/&/g ; $news{$keyname} =~ s/</g ; $news{$keyname} =~ s/>/>/g ; $news{$keyname} =~ s/\"/"/g ; } #" print("Pass 2c (escape sequences) completed.\n"); #Third Pass: #Add the tags for the title and contents. foreach $keyname (keys(%news)) { $news{$keyname} =~ s/([^\n]*)\n/
/; $news{$keyname} = $news{$keyname} . "\n" ; } print("Pass 3 (tag titles and contents) completed.\n"); #Fourth Pass: #Add links between sections. foreach $pattern (sort(sortbylength keys(%news))) { #For each key to search for foreach $entryname (keys(%news)) { # print $pattern,",",$entryname,"\n"; if ($entryname ne $pattern) { $news{$entryname} =~ s/([^\.\w\[">])($pattern)([^\.\w"<\]])/$1$2<\/a>$3/ig; } } } print("Pass 4 (hypertext links) completed.\n"); #Pass 4b: Top and tail links." foreach $keyname (keys(%news)) { $news{$keyname} = "