]> git.plutz.net Git - shellwiki/blob - macros/gallery
Merge commit '131ebbe3155cdd45d2f7473302157f5ba4594759'
[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 src="%s"></a>' \
37              "${attachment%/*}/[attachment]/${attachment##*/}" "${attachment}"
38       ;;
39     *)
40       printf '<a href="%s"><img src="%s"></a>' \
41              "[attachment]/${attachment}" "${attachment}"
42       ;;
43   esac
44 done
45 printf '</div>'