From: Brett Parker <arch@sommitrealweird.co.uk>
Date: Mon, 22 May 2006 19:20:34 +0000 (+0000)
Subject: Preliminary addition of Medium Sized images and pages
X-Git-Tag: release-1.1.0~6
X-Git-Url: https://git.sommitrealweird.co.uk/bpgallery.git/commitdiff_plain/d62a41ddcf501d3c1a147f544dc6fa1b032b2750?hp=bf5a247c00c45a5f672702fdb8e246059f9e3046

Preliminary addition of Medium Sized images and pages

* First draft attempt at medium sized images and the pages to go with it.

git-archimport-id: arch@sommitrealweird.co.uk--2005-desktop/bpgallery--mainline--1.1--patch-1
---

diff --git a/bpgallery.sh b/bpgallery.sh
index cb6a81e..955cb71 100755
--- a/bpgallery.sh
+++ b/bpgallery.sh
@@ -19,7 +19,7 @@
 
 set -f
 
-VERSION="1.0.3.1"
+VERSION="1.1+arch"
 
 function bpgallery_default_head() {
 cat <<END
@@ -91,14 +91,13 @@ div.caption {
 }
 
 div.navigation {
-	width: 100%;
-	margin: 2em;
-	text-align: center;
+	margin: 0;
 }
 
 div.navigation ul {
-	width: 100%;
 	display: inline;
+	margin: 0;
+	padding: 0;
 	text-align: center;
 }
 
@@ -121,11 +120,20 @@ declare -rf bpgallery_default_stylesheet
 
 function bpgallery_default_page() {
 	$BPGALLERY_HEAD_FUNCTION
+
+	linkstart=""
+	linkend=""
+
+	if [[ ! -z $linklocation ]]; then
+		linkstart="<a href='$linklocation'>"
+		linkend="</a>"
+	fi
+	
 	cat <<END
 <h1>${caption}</h1>
 <div class="navigation">
 	<ul>
-		<li><a href='index.html'>Thumbnails</a></li>
+		<li><a href='${INDEXDOCUMENT}'>Thumbnails</a></li>
 END
 	if [[ ! -z $previouspage ]]; then
 		echo "<li><a href='${previouspage}'>Previous</a></li>"
@@ -142,7 +150,7 @@ cat <<END
 	</ul>
 </div>
 <div class="mainimage">
-	<img src="${filename}" alt="${caption}" />
+	${linkstart}<img src="${filename}" alt="${caption}" />${linkend}
 </div>
 END
 	$BPGALLERY_TAIL_FUNCTION
@@ -273,6 +281,18 @@ if [[ -z $GENERATEPAGESFORFULLSIZE ]]; then
 	GENERATEPAGESFORFULLSIZE=0
 fi
 
+if [[ -z $GENERATEPAGESFORMEDIUMSIZE ]]; then
+	GENERATEPAGESFORMEDIUMSIZE=1
+fi
+
+if [[ -z $MEDIUMWIDTH ]]; then
+	MEDIUMWIDTH=400
+fi
+
+if [[ -z $INDEXDOCUMENT ]]; then
+	INDEXDOCUMENT=index.html
+fi
+
 if [[ $GENERATEPAGESFORFULLSIZE != 0 ]]; then
 	if declare -F "bpgallery_${BPGALLERY_THEME}_page" > /dev/null ; then
 		BPGALLERY_PAGE_FUNCTION="bpgallery_${BPGALLERY_THEME}_page"
@@ -339,24 +359,49 @@ Version: $VERSION
 END
 }
 
-function generate_thumbs() {
-	$ECHOCOMMAND "Generating Thumbnails"
+function generate_resized_images() {
+	$ECHOCOMMAND "Generating $2"
 	currentimage=0
 	totalimages=$($FINDCOMMAND . $FINDIMAGESOPTIONS | $XARGSCOMMAND -0 --replace $ECHOCOMMAND {} | $WCCOMMAND);
-	imagestoupdate=$($FINDCOMMAND . $FINDIMAGESOPTIONS | $XARGSCOMMAND -0 --replace $ECHOCOMMAND {} | while read filename; do filename=${filename//\"/\\\"}; if [ ! -r "icons/$filename" ] || [ "$filename" -nt "icons/$filename" ] || [ $($IDENTIFYCOMMAND -format "%w" "icons/$filename") -ne $WIDTH ]; then $ECHOCOMMAND $filename; fi; done | $WCCOMMAND)
+	imagestoupdate=$($FINDCOMMAND . $FINDIMAGESOPTIONS | $XARGSCOMMAND -0 --replace $ECHOCOMMAND {} | while read filename; do filename=${filename//\"/\\\"}; if [ ! -r "$2/$filename" ] || [ "$filename" -nt "$2/$filename" ] || [ $($IDENTIFYCOMMAND -format "%w" "$2/$filename") -ne $1 ]; then $ECHOCOMMAND $filename; fi; done | $WCCOMMAND)
 	
 	if [ $totalimages -eq $imagestoupdate ]; then
-		$ECHOCOMMAND "Regenerating all thumbnails"
+		$ECHOCOMMAND "Regenerating all $2"
 	elif [ $imagestoupdate -eq 0 ]; then
-		$ECHOCOMMAND "No Updated Thumbs, not regenerating"
+		$ECHOCOMMAND "No Updated $2, not regenerating"
 		return
 	else
-		$ECHOCOMMAND "Generating $imagestoupdate of $totalimages thumbnails"
+		$ECHOCOMMAND "Generating $imagestoupdate of $totalimages $2"
 	fi
 	
-	$FINDCOMMAND . $FINDIMAGESOPTIONS | $XARGSCOMMAND -0 --replace $ECHOCOMMAND {} | while read filename; do tempfilename=${filename//\"/\\\"/}; if [ ! -r "icons/$tempfilename" ] || [ "$tempfilename" -nt "icons/$tempfilename" ] || [ $($IDENTIFYCOMMAND -format "%w" "icons/$filename") -ne $WIDTH ]; then $ECHOCOMMAND -n $filename; $ECHOCOMMAND -n -e "\000"; fi; done | $XARGSCOMMAND -0 --verbose --max-procs=4 --replace $CONVERTTOOL -resize $WIDTH '{}' 'icons/{}' 2>&1 | while read throwout; do $ECHOCOMMAND done: $currentimage/$imagestoupdate images; currentimage=$((currentimage+1)); done
+	$FINDCOMMAND . $FINDIMAGESOPTIONS | $XARGSCOMMAND -0 --replace $ECHOCOMMAND {} | while read filename; do tempfilename=${filename//\"/\\\"/}; if [ ! -r "$2/$tempfilename" ] || [ "$tempfilename" -nt "$2/$tempfilename" ] || [ $($IDENTIFYCOMMAND -format "%w" "$2/$filename") -ne $1 ]; then $ECHOCOMMAND -n $filename; $ECHOCOMMAND -n -e "\000"; fi; done | $XARGSCOMMAND -0 --verbose --max-procs=4 --replace $CONVERTTOOL -resize $1 '{}' $2/'{}' 2>&1 | while read throwout; do $ECHOCOMMAND done: $currentimage/$imagestoupdate images; currentimage=$((currentimage+1)); done
 	$ECHOCOMMAND done: $imagestoupdate/$imagestoupdate images
-	$ECHOCOMMAND "Completed generating thumbs for $totalimages images"
+	$ECHOCOMMAND "Completed generating $2 for $totalimages images"
+}
+
+function generate_thumbs() {
+	if [ ! -d icons ]; then
+		mkdir icons
+	fi
+
+	if [ ! -w icons ]; then
+		$ECHOCOMMAND "Can't write to icons directory, exiting"
+		exit 16
+	fi
+
+	generate_resized_images $WIDTH icons
+}
+
+function generate_medium() {
+	if [ ! -d medium ]; then
+		mkdir medium
+	fi
+
+	if [ ! -w medium ]; then
+		$ECHOCOMMAND "Can't write to medium directory, exiting"
+	fi
+	
+	generate_resized_images $MEDIUMWIDTH medium
 }
 
 function generate_pages() {
@@ -367,6 +412,22 @@ function generate_pages() {
 	previousimage=""
 	currentimage=""
 	nextimage=""
+	extra=""
+	extradir=""
+	addlinks=0
+	
+	if [ ! -z $1 ]; then
+		extra=$1
+	fi
+
+	if [ ! -z $2 ]; then
+		extradir=$2/
+		addlinks=1
+	fi
+
+	if [ -z $1 ] && [ -z $2 ] && [[ $GENERATEPAGESFORMEDIUMSIZE != 0 ]]; then
+		addlinks=2
+	fi
 
 	$FINDCOMMAND . $FINDIMAGESOPTIONS | \
 	$XARGSCOMMAND -0 --replace $ECHOCOMMAND {} | \
@@ -374,25 +435,55 @@ function generate_pages() {
 	while read imagefilename; do
 		previousimage=$currentimage
 		currentimage=$nextimage
-		nextimage=$imagefilename
+		nextimage=${imagefilename#./}
+		addlink=""
+
+		if [[ $addlinks == 1 ]]; then
+			if [[ $GENERATEPAGESFORFULLSIZE != 0 ]]; then
+				addlink=${currentimage}.html
+			else
+				addlink=${currentimage}
+			fi
+		fi
+
+		if [[ $addlinks == 2 ]]; then
+			addlink=${currentimage}__medium.html
+		fi
+		
 		previouspage=$currentpage
 		currentpage=$nextpage
-		nextpage=${imagefilename}.html
-		filename=${currentimage}
-		generate_general_page "$previouspage" "$currentpage" "$nextpage"
+		nextpage=${imagefilename}${extra}.html
+		filename=${extradir}${currentimage}
+		generate_general_page "$previouspage" "$currentpage" "$nextpage" $addlink
 		echo $nextimage
 	done | tail -n 2 | (
 		read previouspage
 		read currentpage
-		filename=${currentpage}
-		currentpage=${currentpage}.html
-		previouspage=${previouspage}.html
+		addlink=""
+
+		if [[ $addlinks == 1 ]]; then
+			if [[ $GENERATEPAGESFORFULLSIZE ]]; then
+				addlink=${currentpage}.html
+			else
+				addlink=${currentpage}
+			fi
+		fi
+
+		if [[ $addlinks == 2 ]]; then
+			addlink=${nextimage}__medium.html
+		fi
+		
+		filename=${extradir}${currentpage}
+		currentpage=${currentpage}${extra}.html
+		previouspage=${previouspage}${extra}.html
 		nextpage=""
-		generate_general_page "$previouspage" "$currentpage" ""
+		generate_general_page "$previouspage" "$currentpage" "" $addlink
 	)
 }
 
-
+function generate_medium_pages() {
+	generate_pages __medium medium
+}
 
 function generate_general_page() {
 
@@ -409,6 +500,10 @@ function generate_general_page() {
 		nextpage=""
 	fi
 
+	if [[ ! -z $4 ]]; then
+		linklocation=$4
+	fi
+
 	if [ -r captions.txt ]; then
 		caption=$($GREPCOMMAND -E "^${filename}   " captions.txt); caption=${caption#*    }
 	else
@@ -456,8 +551,8 @@ if [ ! -w . ]; then
 	exit 8
 fi
 
-if [ -e index.html ] && [ ! -w index.html ]; then
-	$ECHOCOMMAND "Can't write index.html, exiting"
+if [ -e ${INDEXDOCUMENT} ] && [ ! -w ${INDEXDOCUMENT} ]; then
+	$ECHOCOMMAND "Can't write ${INDEXDOCUMENT}, exiting"
 	exit 8
 fi
 
@@ -466,17 +561,13 @@ if [ -e style.css ] && [ ! -w style.css ]; then
 	exit 8
 fi
 
-if [ ! -d icons ]; then
-	mkdir icons
-fi
+generate_thumbs
 
-if [ ! -w icons ]; then
-	$ECHOCOMMAND "Can't write to icons directory, exiting"
-	exit 16
+if [ $GENERATEPAGESFORMEDIUMSIZE != 0 ]; then
+	generate_medium
+	generate_medium_pages
 fi
 
-generate_thumbs
-
 if [ $GENERATEPAGESFORFULLSIZE != 0 ]; then
 	generate_pages
 fi
@@ -490,14 +581,19 @@ fi
 
 $ECHOCOMMAND "Starting to generate page"
 
-$BPGALLERY_HEAD_FUNCTION > index.html
-$BPGALLERY_DESCRIPTION_FUNCTION >> index.html
+$BPGALLERY_HEAD_FUNCTION > ${INDEXDOCUMENT}
+$BPGALLERY_DESCRIPTION_FUNCTION >> ${INDEXDOCUMENT}
 
 $ECHOCOMMAND "Adding Captions"
 
-$FINDCOMMAND . $FINDIMAGESOPTIONS | $XARGSCOMMAND -0 --replace $ECHOCOMMAND {} |$SORTCOMMAND -g | while read filename; do filename=${filename#./}; if [ -r captions.txt ]; then caption=$($GREPCOMMAND -E "^$filename	" captions.txt); caption=${caption#*	}; else caption=""; fi; if [ $GENERATEPAGESFORFULLSIZE != 0 ]; then link=$(bpgallery_escape_url "${filename}.html"); else link=$(bpgallery_escape_url "$filename"); fi; filename=$(bpgallery_escape_url "$filename"); $BPGALLERY_THUMBSLINE_FUNCTION; done >> index.html
+extra=""
+if [ $GENERATEPAGESFORMEDIUMSIZE != 0 ]; then
+	extra=__medium
+fi
+
+$FINDCOMMAND . $FINDIMAGESOPTIONS | $XARGSCOMMAND -0 --replace $ECHOCOMMAND {} |$SORTCOMMAND -g | while read filename; do filename=${filename#./}; if [ -r captions.txt ]; then caption=$($GREPCOMMAND -E "^$filename	" captions.txt); caption=${caption#*	}; else caption=""; fi; if [ $GENERATEPAGESFORFULLSIZE != 0 ]; then link=$(bpgallery_escape_url "${filename}${extra}.html"); else link=$(bpgallery_escape_url "$filename"); fi; filename=$(bpgallery_escape_url "$filename"); $BPGALLERY_THUMBSLINE_FUNCTION; done >> ${INDEXDOCUMENT}
 
-$BPGALLERY_TAIL_FUNCTION >> index.html
+$BPGALLERY_TAIL_FUNCTION >> ${INDEXDOCUMENT}
 
 $ECHOCOMMAND "Finished generating the page"
 $ECHOCOMMAND "Generating stylesheet"