#!/usr/bin/perl use strict; use warnings; open my $footerfile, "<", shift @ARGV or die "footer: open: $!\n"; my $footer = ""; $footer .= $_ while <$footerfile>; close $footerfile; for my $arg (@ARGV) { $arg =~ /(.*\/)?([^\/]+)\.html$/ or die; my $filename = $2; open my $gamefile, "<", $arg or die "$arg: open: $!\n"; my $unfinished = 0; my $docname = $filename; chomp(my $puzzlename = <$gamefile>); while ($puzzlename =~ s/^([^:=]+)(=([^:]+))?://) { if ($1 eq "unfinished") { $unfinished = 1; } elsif ($1 eq "docname") { $docname = $3; } else { die "$arg: unknown keyword '$1'\n"; } } my $instructions = ""; $instructions .= $_ while <$gamefile>; close $gamefile; open my $outpage, ">", "${filename}.html"; my $unfinishedtitlefragment = $unfinished ? "an unfinished puzzle " : ""; my $unfinishedheading = $unfinished ? "