diff options
| author | Simon Tatham <anakin@pobox.com> | 2015-01-13 20:04:18 +0000 |
|---|---|---|
| committer | Simon Tatham <anakin@pobox.com> | 2015-01-13 20:04:18 +0000 |
| commit | 7cf7e37d65d59bc87977deb7e810f21b4b106797 (patch) | |
| tree | 75baadeec318c119724205be09a9f1d5672687a3 | |
| parent | e3a8e64812f2fa783dc5644f04f267a291bc6098 (diff) | |
| download | puzzles-7cf7e37d65d59bc87977deb7e810f21b4b106797.zip puzzles-7cf7e37d65d59bc87977deb7e810f21b4b106797.tar.gz puzzles-7cf7e37d65d59bc87977deb7e810f21b4b106797.tar.bz2 puzzles-7cf7e37d65d59bc87977deb7e810f21b4b106797.tar.xz | |
Script to autogenerate pieces of the web page.
This should simplify the process of adding a new puzzle, by automating
the part where I have to manually edit index.html separately from the
main build step.
| -rw-r--r-- | Buildscr | 5 | ||||
| -rw-r--r-- | CHECKLST.txt | 18 | ||||
| -rwxr-xr-x | webpage.pl | 69 |
3 files changed, 80 insertions, 12 deletions
@@ -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 <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">'. + '<image style="margin: 0.5em" alt="" title="%s" width=150 height=150 border=0 src="%s-web.png" />'. + '</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($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; |