X-Git-Url: https://git.sommitrealweird.co.uk/bpgallery.git/blobdiff_plain/5207b33c23b0f42288bc6d1ff1b16960bdbf3d1f..d159b57ca37ebdb3b9a1ef690acb0010de5e3638:/bpgallery.sh diff --git a/bpgallery.sh b/bpgallery.sh index e532c68..3350f20 100755 --- a/bpgallery.sh +++ b/bpgallery.sh @@ -52,7 +52,7 @@ else caption_alt=$caption fi cat << END -
$caption_alt
$caption
+
$caption_alt
$caption
END } @@ -176,6 +176,24 @@ function bpgallery_escape_url() { $ECHOCOMMAND $temp } +function bpgallery_cleanup_directory_name() { + temp=$1 + temp=${temp//\%/_} + temp=${temp//:/_} + temp=${temp//;/_} + temp=${temp// /_} + temp=${temp//$/_} + temp=${temp//&/_} + temp=${temp//+/_} + temp=${temp//,/_} + temp=${temp//\//_} + temp=${temp//=/_} + temp=${temp//\?/_} + temp=${temp//@/_} + temp=${temp//\"/_} + $ECHOCOMMAND $temp +} + declare -rf bpgallery_escape_url if [[ ! -z ${BPGALLERY_THEME} ]] ; then @@ -288,10 +306,13 @@ fi if [[ -z $PAGESDIRECTORY ]]; then PAGESDIRECTORY="" else - temp=${PAGESDIRECTORY:${#PAGESDIRECTORY}-1:1} - if [[ "x$temp" != "x/" ]] && [[ "x$temp" != "x\\" ]]; then - PAGESDIRECTORY=${PAGESDIRECTORY}/ - fi + removetrailingslashes=${PAGESDIRECTORY%/} + temp=$removetrailingslashes + while [[ $removetrailingslashes != $temp ]]; do + temp=$removetrailingslashes + removetrailingslashes=${temp%/} + done + PAGESDIRECTORY=$(bpgallery_escape_url "${PAGESDIRECTORY}") fi if [[ -z $MEDIUMWIDTH ]]; then @@ -302,6 +323,20 @@ if [[ -z $INDEXDOCUMENT ]]; then INDEXDOCUMENT=index.html fi +if [[ -z $MEDIUMDIRECTORY ]]; then + MEDIUMDIRECTORY=medium +else + # Strip out anything that might be broken + MEDIUMDIRECTORY=$(bpgallery_cleanup_directory_name "$MEDIUMDIRECTORY") +fi + +if [[ -z $ICONSDIRECTORY ]]; then + ICONSDIRECTORY=icons +else + # Strip out anything that might be broken + ICONSDIRECTORY=$(bpgallery_cleanup_directory_name "$ICONSDIRECTORY") +fi + if declare -F "bpgallery_${BPGALLERY_THEME}_page" > /dev/null ; then BPGALLERY_PAGE_FUNCTION="bpgallery_${BPGALLERY_THEME}_page" else @@ -435,11 +470,11 @@ function generate_resized_images() { } function generate_thumbs() { - generate_resized_images $WIDTH icons + generate_resized_images $WIDTH $ICONSDIRECTORY } function generate_medium() { - generate_resized_images $MEDIUMWIDTH medium + generate_resized_images $MEDIUMWIDTH $MEDIUMDIRECTORY } function generate_pages() { @@ -536,7 +571,7 @@ function generate_pages() { } function generate_medium_pages() { - generate_pages __medium medium + generate_pages __${MEDIUMDIRECTORY} ${MEDIUMDIRECTORY} } function generate_general_page() { @@ -565,7 +600,7 @@ function generate_general_page() { caption="" fi - $BPGALLERY_PAGE_FUNCTION > "${PAGESDIRECTORY}$currentpage" + $BPGALLERY_PAGE_FUNCTION > "${UNIXPAGESDIRECTORY}$currentpage" } if [[ $OUTPUTHTML != 0 ]]; then @@ -627,8 +662,13 @@ if [[ "x$PAGESDIRECTORY" != "x" ]]; then $ECHOCOMMAND "Can't write to $PAGESDIRECTORY directory, exiting" exit 16 fi + UNIXPAGESDIRECTORY=$PAGESDIRECTORY/ + PAGESDIRECTORY=$(bpgallery_escape_url $PAGESDIRECTORY)/ BASEURL="../" +else + BASEURL="" + UNIXPAGESDIRECTORY="" fi if [ $GENERATEPAGESFORMEDIUMSIZE != 0 ]; then @@ -638,7 +678,7 @@ fi if [ $GENERATEPAGESFORFULLSIZE != 0 ]; then if [ $GENERATEPAGESFORMEDIUMSIZE != 0 ]; then - generate_pages __medium + generate_pages __${MEDIUMDIRECTORY} else generate_pages fi @@ -661,7 +701,7 @@ $ECHOCOMMAND "Adding Captions" extra="" if [ $GENERATEPAGESFORMEDIUMSIZE != 0 ]; then - extra=__medium + extra=__${MEDIUMDIRECTORY} fi $FINDCOMMAND . $FINDIMAGESOPTIONS | $XARGSCOMMAND -0 -I {} $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 [ $GENERATEPAGESFORMEDIUMSIZE != 0 ]; then link=${PAGESDIRECTORY}$(bpgallery_escape_url "${filename}${extra}.html"); elif [ $GENERATEPAGESFORFULLSIZE != 0 ]; then link=${PAGESDIRECTORY}$(bpgallery_escape_url "${filename}.html"); else link=$(bpgallery_escape_url "$filename"); fi; filename=$(bpgallery_escape_url "$filename"); $BPGALLERY_THUMBSLINE_FUNCTION; done >> ${INDEXDOCUMENT} @@ -670,7 +710,7 @@ $BPGALLERY_TAIL_FUNCTION >> ${INDEXDOCUMENT} $ECHOCOMMAND "Finished generating the page" $ECHOCOMMAND "Generating stylesheet" -cd icons +cd $ICONSDIRECTORY MAXHEIGHT=$($FINDCOMMAND . $FINDIMAGESOPTIONS | $XARGSCOMMAND -0 $IDENTIFYCOMMAND -format "%h\n" | $GREPCOMMAND -v "^$" | $SORTCOMMAND -g -r | $HEADCOMMAND -n 1) MAXWIDTH=$($FINDCOMMAND . $FINDIMAGESOPTIONS | $XARGSCOMMAND -0 $IDENTIFYCOMMAND -format "%w\n" | $GREPCOMMAND -v "^$" | $SORTCOMMAND -g -r | $HEADCOMMAND -n 1)