#! perl -w ## read index.html, and update the templates in all the other files ## ## test comment use strict; my $pagetitle_re = qr;.*;sm; my $title_re = qr;

.*?

;sm; my $subtitle_re = qr;

.*?

;sm; my $content_re = qr;(.*);sm; my $keywords_re = qr;();sm; my $linkbox1_re = qr;(.*);sm; my $linkbox2_re = qr;(.*);sm; my $linkbox3_re = qr;(.*);sm; my $all_linkboxes_re = qr;(.*);sm; print "Reading template taiji.html ...\n"; open TEMPLATE, "; }; close TEMPLATE; # the title should be the same on all pages my $global_title; if ($template =~ m!$title_re!) { $global_title = $&; } else { die "no title in template"; } sub update_file { my $filename=shift; print "Processing $filename\n"; open FILE, "<$filename" or die "$filename: $!"; my $file = do { local $/ = undef; ; }; close FILE; my ($subtitle, $content, $linkbox1, $linkbox2, $linkbox3, $keywords); if ($file =~ m!$content_re!) { $content = $&; } else { die "no content"; } if ($file =~ m!$subtitle_re!) { $subtitle = $&; } else { die "no subtitle"; } if ($file =~ m!$keywords_re!) { $keywords = $&; } else { die "no keywords"; } if ($file =~ m!$linkbox1_re!) { $linkbox1 = $&; } else { #warn "no linkbox1 in $filename"; } if ($file =~ m!$linkbox2_re!) { $linkbox2 = $&; } else { #warn "no linkbox2 in $filename"; } if ($file =~ m!$linkbox3_re!) { $linkbox3 = $&; } else { #warn "no linkbox3 in $filename"; } #warn "Global title: $global_title"; #warn "Subtitle: $subtitle"; #warn "Keywords: $keywords"; #warn "Content: $content"; my $newfile = $template; $newfile =~ s!$content_re!$content! or die "error replacing content"; $newfile =~ s!$title_re!$global_title! or die "error replacing title"; $newfile =~ s!$subtitle_re!$subtitle! or die "error replacing subtitle"; $newfile =~ s!$keywords_re!$keywords! or die "error replacing keywords"; if (not defined $linkbox1 and not defined $linkbox2 and not defined $linkbox3) { $newfile =~ s,$all_linkboxes_re,,; } if (defined $linkbox1) { $newfile =~ s!$linkbox1_re!$linkbox1! or die "error replacing linkbox1 in $filename"; } if (defined $linkbox2) { $newfile =~ s!$linkbox2_re!$linkbox2! or die "error replacing linkbox2 in $filename"; } if (defined $linkbox3) { $newfile =~ s!$linkbox3_re!$linkbox3! or die "error replacing linkbox3 in $filename"; } # as well as the above simple things, we update the page's title # based on the title and subtitle retrieved from the page. my $page_title = "$global_title - $subtitle"; $page_title =~ s!<[^<>]+>!!g; $newfile =~ s!$pagetitle_re!$page_title! or die "error replacing page title"; open NEWFILE, ">$filename.new" or die "open $filename.new: $!"; print NEWFILE $newfile; close NEWFILE; rename($filename, "$filename.old") or die "rename $filename: $!"; rename("$filename.new", $filename) or die "rename $filename.new: $!"; } for my $file (glob('*.html')) { update_file($file); }