Files
puzzles/webpage.pl
Simon Tatham b36298ab4d Make the images on the web page link to the JS puzzles.
I've been thinking for a while that it's about time I did that. Those
images used to link to the Java versions of the puzzles, back when
Java was the in-browser applet platform of choice; then I made them
not link to either one when it wasn't clear which system would win;
but now JS has clearly won, it's past time the images linked to the JS
puzzles, as the obviously sensible default.
2017-09-05 21:02:18 +01:00

71 lines
2.0 KiB
Perl
Executable File

#!/usr/bin/perl
# Construct the two pieces of my main puzzle collection web page that
# need to vary with the set of puzzles: the big list of <span>s with
# puzzle pictures and links etc, and the list of Windows executable
# files down in the downloads section.
use strict;
use warnings;
use HTML::Entities;
open my $desc, "<", "gamedesc.txt"
or die "gamedesc.txt: open: $!\n";
open my $spans, ">", "wwwspans.html"
or die "wwwspans.html: open: $!\n";
open my $links, ">", "wwwlinks.html"
or die "wwwspans.html: open: $!\n";
my $n = 0;
while (<$desc>) {
chomp;
my ($id, $win, $displayname, $description, $summary) = split /:/, $_;
printf $spans
'<span class="puzzle"><table>'.
'<tr><th align="center">%s</th></tr>'.
'<tr><td align="center">'.
'<a href="js/%s.html"><img style="margin: 0.5em" alt="" title="%s" width=150 height=150 border=0 src="%s-web.png" /></a>'.
'</td></tr>'.
'<tr><td align="center" style="font-size: 70%%"><code>[</code>'.
' <a href="java/%s.html">java</a> '.
'|'.
' <a href="js/%s.html">js</a> '.
'|'.
' <a href="doc/%s.html#%s">manual</a> '.
'<code>]</code><br><code>[</code>'.
' <a href="%s"><code>%s</code></a> '.
'<code>]</code></td></tr>'.
'<tr><td align="center">%s</td></tr></table></span>'.
"\n",
encode_entities($displayname),
encode_entities($id),
encode_entities($description),
encode_entities($id),
encode_entities($id),
encode_entities($id),
encode_entities($id),
encode_entities($id),
encode_entities($win),
encode_entities($win),
encode_entities($summary);
if ($n > 0) {
if ($n % 5 == 0) {
print $links "<br />";
} else {
print $links " | ";
}
}
printf $links '<a href="%s">%s</a>',
encode_entities($win), encode_entities($win);
$n++;
}
close $desc;
close $spans;
close $links;