]> git.plutz.net Git - shellwiki/blob - macros/gallery
Merge commit '6bc502434737d7f08379e79b94fc6fda424ef779'
[shellwiki] / macros / gallery
1 #!/bin/sh
2
3 # Copyright 2023 Paul Hänsch
4
5 # Permission to use, copy, modify, and/or distribute this software for any
6 # purpose with or without fee is hereby granted, provided that the above
7 # copyright notice and this permission notice appear in all copies.
8
9 # THE SOFTWARE IS PROVIDED “AS IS” AND THE AUTHOR DISCLAIMS ALL WARRANTIES
10 # WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
11 # MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY
12 # SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
13 # WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
14 # ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR
15 # IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
16
17 . "$_EXEC/cgilite/cgilite.sh"
18 . "$_EXEC/acl.sh"
19 . "$_EXEC/tools.sh"
20
21 [ $# = 0 ] && set -- "*"
22
23 printf '<div class="macro gallery">'
24 for glob in "$@"; do
25   page="${glob%/*}"
26   [ "$page" = "$glob" ] && page=./
27   [ ! "$page" ]         && page=/
28
29   acl_read "$(page_abs "${page}")" \
30   && attachment_glob "$glob"
31 done \
32 | grep -xiE '.*\.jpe?g|.*\.png|.*\.gif' \
33 | while read attachment; do
34   case $attachment in
35     */*)
36       printf '<a href="%s"><img alt="" src="%s"></a>' \
37              "$(URL "${attachment%/*}/[attachment]/${attachment##*/}")" \
38              "$(URL "${attachment}")"
39       ;;
40     *)
41       printf '<a href="%s"><img alt="" src="%s"></a>' \
42              "$(URL "[attachment]/${attachment}")" \
43              "$(URL "${attachment}")"
44       ;;
45   esac
46 done
47 printf '</div>'