diff --git a/Buildscr b/Buildscr index e3997a0..e63df1b 100644 --- a/Buildscr +++ b/Buildscr @@ -146,6 +146,9 @@ delegate emscripten return puzzles/js/*.js enddelegate +# Build the autogenerated pieces of the main web page. +in puzzles do perl webpage.pl + # Set up .htaccess containing a redirect for the archive filename. in puzzles do echo "AddType application/octet-stream .chm" > .htaccess in puzzles do echo "AddType application/octet-stream .hlp" >> .htaccess @@ -169,6 +172,8 @@ deliver puzzles/*.jar java/$@ deliver puzzles/js/*.js js/$@ deliver puzzles/html/*.html html/$@ deliver puzzles/html/*.pl html/$@ +deliver puzzles/wwwspans.html $@ +deliver puzzles/wwwlinks.html $@ # deliver puzzles/puzzles.armv4.cab $@ # (not built at the moment) diff --git a/CHECKLST.txt b/CHECKLST.txt index 169f834..715f746 100644 --- a/CHECKLST.txt +++ b/CHECKLST.txt @@ -59,17 +59,11 @@ might have been involved. Check in! Put the puzzle on the web: - - run puzzlesnap first - - make sure the screenshot and Windows binary have arrived in the www - directory, and that the .jar file and its accompanying web page has - arrived in the java subdirectory - - add an entry in the puzzles list in index.html - - add the Windows executable name to the list further down - index.html - - adjust the copyright in index.html if the puzzle is by a new + - run puzzlesnap.sh + - adjust the copyright in index-mid.html if the puzzle is by a new author - - test that the binary link and the docs link work - - test that the Java version works + - check that the new puzzle has appeared on the staging web page + - test both Windows binary links, the docs link, the Javascript + version and the Java version - run webupdate - - test again - - check in the change to index.html + - test all those things once more on the live website diff --git a/webpage.pl b/webpage.pl new file mode 100755 index 0000000..800b183 --- /dev/null +++ b/webpage.pl @@ -0,0 +1,69 @@ +#!/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 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 + ''. + ''. + ''. + ''. + '
%s
'. + ''. + '
['. + 'java'. + '|'. + 'js'. + '|'. + 'manual'. + ']
['. + '%s'. + ']
%s
'. + "\n", + encode_entities($displayname), + 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 "
"; + } else { + print $links " | "; + } + } + printf $links '%s', + encode_entities($win), encode_entities($win); + + $n++; +} + +close $desc; +close $spans; +close $links;