From 49fba922eac8c4022b002e340080be9a7134132e Mon Sep 17 00:00:00 2001
From: Simon Tatham
Date: Sat, 30 Mar 2013 20:16:21 +0000
Subject: New front end! To complement the webification of my puzzles via Java
applets, here's an alternative webification in Javascript, using Emscripten
in asm.js mode (so that as browsers incorporate asm.js optimisation, the game
generation should run really fast).
[originally from svn r9781]
---
html/jspage.pl | 113 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++
1 file changed, 113 insertions(+)
create mode 100644 html/jspage.pl
(limited to 'html')
diff --git a/html/jspage.pl b/html/jspage.pl
new file mode 100644
index 0000000..7172800
--- /dev/null
+++ b/html/jspage.pl
@@ -0,0 +1,113 @@
+#!/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 ? "
an unfinished puzzle
\n" : "";
+ my $unfinishedpara;
+ my $links;
+ if ($unfinished) {
+ $unfinishedpara = <
+You have found your way to a page containing an unfinished
+puzzle in my collection, not linked from the main
+puzzles page. Don't be surprised if things are hard to understand
+or don't work as you expect.
+EOF
+ $links = <
+Back to main puzzles page (which does not link to this)
+EOF
+ } else {
+ $unfinishedpara = "";
+ $links = <
+Full instructions
+|
+Back to main puzzles page
+EOF
+ }
+
+ print $outpage <
+
+
+${puzzlename}, ${unfinishedtitlefragment}from Simon Tatham's Portable Puzzle Collection
+
+
+
+