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];thenrm−rftemp; 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
documents; this new-style build form is generally recommended
(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