#!/usr/bin/perl -w # read list of files on command line in form "Slide*.JPG", # print a frame-type index plus HTML files for each slide. # if you want the files sorted in some way, do that before # calling this script. use File::Basename; use strict; use subs qw/doslides mkframe mktoc/; my $myname = basename($0, ".pl"); my $date = scalar localtime; my $toc; my @files = (); die "usage: $0 JPG-files\n" unless @ARGV; # # Get list of slides from command line. # foreach (@ARGV) { if (/\.jpg$/i) { push (@files, $_); } } # # Real work starts here. # mkframe($files[0]); # top-level frame index mktoc(@files); # table of contents on left panel doslides(@files); # write each slide exit(0); # --------------------------------------------------------------------- sub doslides { my @f = @_; my $fh; my @htm = (); my $name; foreach (@f) { if (/(.*)\.jpg/i) { $name = $1; push (@htm, "$name.htm"); } } my $k = 0; foreach (@f) { next unless /(.*)\.jpg/i; my $img = $_; my $name = $1; my $kn = $k + 1; my $kp = $k - 1; $_ = "$name.htm"; # Create next and previous links. my $nlink; my $plink; if ($k > 0) { $plink = qq!<< Prev!; } else { $plink = qq! !; } if ($k < $#f) { $nlink = qq!Next >>!; } else { $nlink = qq! !; } # Write the file. open($fh, "> $_") || die "$_: $!\n"; print $fh <<"EndFile"; Slide $k
[$img]

$plink Slide $kn $nlink
EndFile close($fh); $k++; } } # --------------------------------------------------------------------- sub mkframe { my $first = shift; my $fh; open($fh, "> index.htm") || die "index.htm: $!\n"; print $fh <<"EndIndex"; Presentation EndIndex close($fh); } # --------------------------------------------------------------------- sub mktoc { my @f = @_; my $fh; open($fh, "> toc.htm") || die "toc.htm: $!\n"; print $fh <<"EndHeader";

Slides

EndHeader my $k = 0; my $name; foreach (@f) { if (/(.*)\.jpg/i) { $name = $1; $_ = "$name.htm"; $k++; print $fh " \n"; print $fh " \n \n" if ($k % 3 == 0 && $k < $#f); } } print $fh <<"EndTrailer";
"; print $fh "$k

$myname
$date
EndTrailer close($fh); }