ref: 61e711178455dbd0ec8f78d15791b7e25fbf7156
parent: d72db91888c1efddd56c67eee665b0a83c9329eb
author: Simon Tatham <[email protected]>
date: Wed Sep 20 06:22:28 EDT 2017
Build test HTML wrapper pages for the Javascript puzzles. This should make it less annoying for me to do local testing of the JS output of a build, before I push a change. There's a new build.out/jstest directory containing .html files suitable for loading in a local browser, which refer to the JS files via an appropriate relative path to the existing build.out/js directory.
--- a/Buildscr
+++ b/Buildscr
@@ -158,6 +158,16 @@
return puzzles/js/*.js
enddelegate
+# Build a set of wrapping HTML pages for easy testing of the
+# Javascript puzzles. These aren't quite the same as the versions that
+# will go on my live website, because those ones will substitute in a
+# different footer, and not have to link to the .js files with the
+# ../js/ prefix. But these ones should be good enough to just open
+# using a file:// URL in a browser after running a build, and make
+# sure the main functionality works.
+in puzzles do mkdir jstest
+in puzzles/jstest do ../html/jspage.pl --jspath=../js/ /dev/null ../html/*.html
+
# 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
@@ -179,6 +189,7 @@
deliver puzzles/puzzles.msi puzzles-$(Version)-installer.msi
deliver puzzles/*.jar java/$@
deliver puzzles/js/*.js js/$@
+deliver puzzles/jstest/*.html jstest/$@
deliver puzzles/html/*.html html/$@
deliver puzzles/html/*.pl html/$@
deliver puzzles/wwwspans.html $@
--- a/html/jspage.pl
+++ b/html/jspage.pl
@@ -3,6 +3,17 @@
use strict;
use warnings;
+my $jspath = "";
+while ($ARGV[0] =~ /^-/) {
+ my $opt = shift @ARGV;
+ last if $opt eq "--";
+ if ($opt =~ /^--jspath=(.+)$/) {
+ $jspath = $1;
+ } else {
+ die "jspage.pl: unrecognised option '$opt'\n";
+ }
+}
+
open my $footerfile, "<", shift @ARGV or die "footer: open: $!\n";
my $footer = "";
$footer .= $_ while <$footerfile>;
@@ -62,7 +73,7 @@
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ASCII" />
<title>${puzzlename}, ${unfinishedtitlefragment}from Simon Tatham's Portable Puzzle Collection</title>
-<script type="text/javascript" src="${filename}.js"></script>
+<script type="text/javascript" src="${jspath}${filename}.js"></script>
<style class="text/css">
/* Margins and centring on the top-level div for the game menu */
#gamemenu { margin-top: 0; margin-bottom: 0.5em; text-align: center }