mirror of
git://git.tartarus.org/simon/puzzles.git
synced 2025-04-21 08:01:30 -07:00
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.
This commit is contained in:
5
Buildscr
5
Buildscr
@ -146,6 +146,9 @@ delegate emscripten
|
|||||||
return puzzles/js/*.js
|
return puzzles/js/*.js
|
||||||
enddelegate
|
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.
|
# 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 .chm" > .htaccess
|
||||||
in puzzles do echo "AddType application/octet-stream .hlp" >> .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/js/*.js js/$@
|
||||||
deliver puzzles/html/*.html html/$@
|
deliver puzzles/html/*.html html/$@
|
||||||
deliver puzzles/html/*.pl html/$@
|
deliver puzzles/html/*.pl html/$@
|
||||||
|
deliver puzzles/wwwspans.html $@
|
||||||
|
deliver puzzles/wwwlinks.html $@
|
||||||
|
|
||||||
# deliver puzzles/puzzles.armv4.cab $@ # (not built at the moment)
|
# deliver puzzles/puzzles.armv4.cab $@ # (not built at the moment)
|
||||||
|
|
||||||
|
18
CHECKLST.txt
18
CHECKLST.txt
@ -59,17 +59,11 @@ might have been involved.
|
|||||||
Check in!
|
Check in!
|
||||||
|
|
||||||
Put the puzzle on the web:
|
Put the puzzle on the web:
|
||||||
- run puzzlesnap first
|
- run puzzlesnap.sh
|
||||||
- make sure the screenshot and Windows binary have arrived in the www
|
- adjust the copyright in index-mid.html if the puzzle is by a new
|
||||||
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
|
|
||||||
author
|
author
|
||||||
- test that the binary link and the docs link work
|
- check that the new puzzle has appeared on the staging web page
|
||||||
- test that the Java version works
|
- test both Windows binary links, the docs link, the Javascript
|
||||||
|
version and the Java version
|
||||||
- run webupdate
|
- run webupdate
|
||||||
- test again
|
- test all those things once more on the live website
|
||||||
- check in the change to index.html
|
|
||||||
|
69
webpage.pl
Executable file
69
webpage.pl
Executable file
@ -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;
|
Reference in New Issue
Block a user