File: thumbspage/examples/dynamiclayout/_generate.sh (original) (raw)

#!/bin/bash

=========================================================================

Run this bash script in this folder to make just this folder's galleries:

~/.../thumbspage/examples/dynamiclayout$ bash _generate.sh

To make all examples, run the script ../../build/generate-examples.py,

which runs this script and all others like it. This automates console

inputs, but requires a Unix-style bash shell; extrapolate for other

shells or run thumbspage manually elsewhere per _HOW-MADE.txt here.

Unlike examples/trnpix, this does NOT regenerate trnpix's own content,

but simply copies out its images, header, and footer, and builds its

own galleries here with commands that differ from those of trnpix.

Update: as of 2.2, this script could use setting=value config arguments

in its thumbspage command line, instead of editing the config file with

a sed command. The latter is retained here as an example of former

usage, but also see ahead for an outline of the new 2.2+ alternative.

See also ../2.2-upgrades/config-args-demo.sh for a comprehensive demo.

Update: as of 2.3, console inputs can be provided with input-override

config settings, in the config file or config arguments; see ahead.

2.3 also supports popup color configs, but inherit from the page here.

Note: make-narrow-labels.py' enumerate() counter creates unique IDs,

but includes non-image files that don't show up in the gallery.

Caveat: as coded, the subfolder demos wind up with the hosting site's

analytics code embedded in them; please don't posts them online verbatim.

Update: the make-narrow-labels.py now copies over and renames 2.3 .note

files too, else they would appear in the wide demo only (subtly indeed).

Update: trnpix now builds its HEADER.html twice, by replacing a tag

in _HEADER.html; this script will grab the second of the two built.

Update: as of 3.0, dynamic index layout is the preset default, so much

of the convolution in this script is no longer required (but remains).

Better idea: use 2.2+ command-lined argument options and be explicit.

Also for [3.0], trnpix flenames renamed with spaces, and use grey in

the index note in HEADER.htlm so it's not washed out in dark mode.

=========================================================================

Imageless page + 2 subfolder galleries with config edits

#------------------

Setup and globals

#------------------

drop demo image from prior run, else appears twice!

rm -f Demo-Narrow-Filename-Labels/001.png

ensure scratch folder

temp=~/Desktop/temp if [ ! -d temp];thenrm−rftemp ]; then rm -rf temp];thenrmrftemp; mkdir $temp; fi # {}; optional, ; or \n

for script and configs

thumbspage=../..

for originals only (edit me)

trnpixdir=~/MY-STUFF/Websites/UNION/trnpix

auto-split in for loops

demos='Demo-Wide-Filename-Labels Demo-Narrow-Filename-Labels'

#-------------------------------

Copy images in, shorten labels

#-------------------------------

assumes trnpix images+header+footer are current!

for demo in $demos; do cp trnpixdir/∗.∗./trnpixdir/. ./trnpixdir/../demo done

use py for heavy lifting; .notes too [2.3]

python3 ./make-narrow-labels.py

#-----------------------------

Backup and edit configs file

#-----------------------------

##~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

OR, in 2.2+, use this, and skip the sed edits and config

save/restore here; the thumbsBgColor index setting now also

defaults to lightgrey in 2.2 (no edit or config is needed),

and unlike in file, viewerBorderColor doesn't default to Fg:

for demo in $demos; do

python3 thumbspage/thumbspage.py./thumbspage/thumbspage.py ./thumbspage/thumbspage.py./demo \

useDynamicIndexLayout=True \

viewerBgColor='darkgrey' viewerFgColor='black' \

viewerBorderColor='black' <<-EOF

...

EOF

OR, in 2.3+, use this, and skip both sed edits and <<-EOF here

(see Windows for its differences; ^ may be line continuation):

for demo in $demos; do

python3 thumbspage/thumbspage.py./thumbspage/thumbspage.py ./thumbspage/thumbspage.py./demo \

useDynamicIndexLayout=True \

viewerBgColor='darkgrey' \

viewerFgColor='black' \

viewerBorderColor='black' \

inputCleanThumbsFolder=True \

inputThumbMaxSize=100,100 \

inputUseViewerPages=True

##~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

punt: [read -p 'Change user_configs.py to dynamic-layout mode now']

punt: [sed -i '' -e '...' file] - in-place changes bump modtimes

punt: [sed -i 'bkp' -e '...' file] - auto-backups are nonportable?

save configs file for edits

mv thumbspage/userconfigs.pythumbspage/user_configs.py thumbspage/userconfigs.pythumbspage/user_configs.py.bkp

make edits to 4 lines: -e 's/from/to/'

bash: for nested ', use $' ' ' or " ' "

sed -e 's/useDynamicIndexLayout = False/useDynamicIndexLayout = True/'
-e "s/thumbsBgColor = '#f5f5f5'/thumbsBgColor = 'lightgrey'/"
-e "s/viewerBgColor = 'black'/viewerBgColor = 'darkgrey'/"
-e "s/viewerFgColor = 'white'/viewerFgColor = 'black'/"
< thumbspage/userconfigs.py.bkp>thumbspage/user_configs.py.bkp > thumbspage/userconfigs.py.bkp>thumbspage/user_configs.py

#-----------------------------

Make root page and galleries

#-----------------------------

imageless-folder page

python3 $thumbspage/thumbspage.py .

two subfolder galleries: defaults, no row-size input

for demo in $demos; do python3 thumbspage/thumbspage.py./thumbspage/thumbspage.py ./thumbspage/thumbspage.py./demo <<-EOF

EOF

done

restore configs asap

mv thumbspage/userconfigs.py.bkpthumbspage/user_configs.py.bkp thumbspage/userconfigs.py.bkpthumbspage/user_configs.py

#--------------------------

Fixup gallery index files

#--------------------------

the galleries need 2 main-site files assumed by trnpix, _main.css

and a toolbar image, but their toolbar links are also relative to

'..' which won't work here; fix all by changing both index's '../'

to live website links, with in-place sed edits (modtimes okay here)

cp $trnpixdir/../_main.css .

cp $trnpixdir/../PythonPowered.gif .

sed: use @ as alt delimiter

for demo in $demos; do sed -i ''
-e 's@../@https://learning-python.com/@'
$demo/index.html done

#---------------------------------

Strip full-size images for space

#---------------------------------

viewer pages won't show images, but this demos indexes only

but keep one image in each just for show

cp Demo-Narrow-Filename-Labels/001.png $temp cp Demo-Wide-Filename-Labels/1996\ First\ Pybook.png $temp

keep index and _thumbspage subddir

for demo in $demos; do mv ./$demo/index.html $temp rm ./$demo/. mv temp/index.html./temp/index.html ./temp/index.html./demo done

the first must be removed at start of next run

cp $temp/001.png Demo-Narrow-Filename-Labels cp $temp/1996\ First\ Pybook.png Demo-Wide-Filename-Labels