]> www.average.org Git - mkgallery.git/blobdiff - mkgallery.pl
expand Id
[mkgallery.git] / mkgallery.pl
index 506e398152b0bb51bea37a0ff7909619cae7cc18..54adf58c3842d38696be97d2554d9bfa0c2f5452 100755 (executable)
@@ -1,5 +1,29 @@
 #!/usr/bin/perl
 
+# $Id$
+
+# Recursively create image gallery index and slideshow wrappings.
+# Makes use of (slightly modified) "lightbox" Javascript/CSS as published
+# at http://www.huddletogether.com/projects/lightbox/
+
+# Copyright (c) 2006 Eugene G. Crosser
+
+#  This software is provided 'as-is', without any express or implied
+#  warranty.  In no event will the authors be held liable for any damages
+#  arising from the use of this software.
+#
+#  Permission is granted to anyone to use this software for any purpose,
+#  including commercial applications, and to alter it and redistribute it
+#  freely, subject to the following restrictions:
+#
+#  1. The origin of this software must not be misrepresented; you must not
+#     claim that you wrote the original software. If you use this software
+#     in a product, an acknowledgment in the product documentation would be
+#     appreciated but is not required.
+#  2. Altered source versions must be plainly marked as such, and must not be
+#     misrepresented as being the original software.
+#  3. This notice may not be removed or altered from any source distribution.
+
 use strict;
 use Carp;
 use POSIX qw/getcwd/;
@@ -63,7 +87,7 @@ sub processdir {
                        -script=>[{-code=>"var incPrefix='$inc';"},
                                {-src=>$inc."gallery.js"},
                                {-src=>$inc."lightbox.js"}]),"\n";
-       print a({-href=>"../"},"UP");
+       print a({-href=>"../index.html"},"UP");
        print start_center,"\n";
        print h1($title),"\n";
 
@@ -110,6 +134,7 @@ sub processdir {
 # write HTML footer
 
        print br({-clear=>"all"}),"\n";
+       print a({-href=>".html/".$piclist[0]."-slide.html"},"Slideshow");
        print hr,"\n" if ($haspics);
        print end_center,"\n";
        print end_html,"\n";
@@ -199,8 +224,8 @@ sub subalbum {
        my ($base,$title)=@_;
 
        print Tr({-bgcolor=>"#c0c0c0"},
-               td(a({-href=>$base."/"},$base)),
-               td(a({-href=>$base."/"},$title))),"\n";
+               td(a({-href=>$base."/index.html"},$base)),
+               td(a({-href=>$base."/index.html"},$title))),"\n";
 }
 
 sub processfile {
@@ -264,12 +289,21 @@ sub mkauxfile {
        if ($pbase) {
                $pref=sprintf("%s-%s.html",$pbase,$refresh);
        } else {
-               $pref="../";
+               $pref="../index.html";
        }
        if ($nbase) {
                $nref=sprintf("%s-%s.html",$nbase,$refresh);
        } else {
-               $nref="../";
+               $nref="../index.html";
+       }
+       my $toggle;
+       my $toggleref;
+       if ($refresh eq 'slide') {
+               $toggle='Stop!';
+               $toggleref=sprintf("%s-static.html",$base);
+       } else {
+               $toggle='Play->';
+               $toggleref=sprintf("%s-slide.html",$base);
        }
 
        my $tdir=sprintf "%s/%s/.html",$start,$dir;
@@ -283,12 +317,22 @@ sub mkauxfile {
        $title=$base unless ($title);
        if ($refresh eq 'slide') {
                print start_html(-title=>$title,
+                               -bgcolor=>"#808080",
                        -head=>meta({-http_equiv=>'Refresh',
                                -content=>"3; url=$nref"})),"\n";
        } else {
-               print start_html(-title=>$title),"\n";
+               print start_html(-title=>$title,
+                               -bgcolor=>"#808080"),"\n";
        }
-       print img({-src=>"../.640/".$base});
+       print start_center,"\n";
+       print h1($title);
+       print a({-href=>"../index.html"},"Index")," | ";
+       print a({-href=>$pref},"<<Prev")," | ";
+       print a({-href=>$toggleref},$toggle)," | ";
+       print a({-href=>$nref},"Next>>");
+       print p;
+       print img({-src=>"../.640/".$base}),"\n";
+       print end_center,"\n";
        print end_html,"\n";
        close(STDOUT);
 }