#!/usr/bin/awk -f # # thumblinklist -- makes HTML link list with thumbnails # # usage: thumblinklist galleries.idxs > galleries.html # # http://www.heikopurnhagen.net/software/thumblinklist # # This program is available under the terms of the GNU General Public # License (GPL). All usual disclaimers apply! # # Heiko Purnhagen (mail@heikopurnhagen.net) # HP 20070819 # HP 20070908 adding mouseover highlighting # HP 20080811 # HP 20080816 # HP 20100911 adding onlythumb=1 option, close(getwh) BEGIN { numlink = 0; thumbrow = 3; thumbsize = 100; onlythumb = 0; } { if (NR % 4 == 1) name[numlink] = $0; if (NR % 4 == 2) link[numlink] = $0; if (NR % 4 == 3) thumb[numlink] = $0; if (NR % 4 == 0) { if ($0 != "") { print "ERROR, delimiter at line "NR" not empty: "$0 > "/dev/stderr"; numlink = 0; exit; } else { numlink++; } } } END { print "THUMBLINKLIST number of links: "numlink > "/dev/stderr"; if (numlink) { print ""; for (i=0; i"; printf "\n",i+1,i+1,i+1,i+1,i+1; } if (i % thumbrow == 0) { if (onlythumb) { print ""; } rowspan = numlink-i; if (rowspan > thumbrow) { rowspan = thumbrow; } for (j=0; j= numlink) { if (!onlythumb) { printf "",rowspan,thumbsize+20,thumbsize+20; } else { printf "",thumbsize+20,thumbsize+20; } } else { getwh = "identify -format '%wx%h' " thumb[i+j]; getwh | getline wxh; close(getwh); split(wxh,wh,"x"); if (!onlythumb) { printf "\n" } } if (onlythumb) { print ""; } } if (!onlythumb) { print ""; } } print "
\n" name[i] "\n
    ",i+j+1,rowspan,thumbsize+20,thumbsize+20; } else { printf "",i+j+1,thumbsize+20,thumbsize+20; } if (!onlythumb) { printf "",i+j+1,i+j+1,i+j+1,i+j+1; } else { printf "",i+j+1,i+j+1,i+j+1,i+j+1; } printf "\""",int((thumbsize+10-wh[1])/2),int((thumbsize+10-wh[2])/2),wh[1],wh[2]; printf "
"; } } #--