#!/bin/sh # Copyright 2022 - 2023 Paul Hänsch # # Permission to use, copy, modify, and/or distribute this software for any # purpose with or without fee is hereby granted, provided that the above # copyright notice and this permission notice appear in all copies. # # THE SOFTWARE IS PROVIDED “AS IS” AND THE AUTHOR DISCLAIMS ALL WARRANTIES # WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF # MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY # SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES # WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN # ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR # IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. . "$_EXEC/cgilite/cgilite.sh" . "$_EXEC/acl.sh" . "$_EXEC/tools.sh" tags='' dir='' depth='' glob_system_pages=false label='' labeltype='' altlabel='' cnt=0 set -- "$@" -- while [ $# -gt 0 ]; do case $1 in --system) glob_system_pages=true; shift 1;; --depth) depth="$2" shift 2;; \#*) tags="${tags}${tags:+ }${1###}"; shift 1;; --h1|--h2|--h3|--h4|--h5|--h6|--label) labeltype="${1#--}" label="$2"; shift 2;; --alt-label) altlabel="$2"; shift 2;; --) shift 1; break;; *) if [ ! "$dir" ]; then dir="$1" set -- "$@" "$1"; shift 1; elif [ ! "$depth" ]; then depth="$1"; shift 1; else set -- "$@" "$1"; shift 1; fi;; esac; done [ "$*" ] || set -- "*" [ "$depth" -ge 0 -o "$depth" -le 0 ] 2>&- || depth=0 for dir in "$@"; do page_glob "$dir" "$depth" done \ | sort -u \ | { while read -r page; do pagedir="$(page_abs "$page")" if [ -f "$_DATA/pages/${pagedir}/#page.md" -o \ -f "$_EXEC/pages/${pagedir}/#page.md" ] \ && acl_read "$pagedir" \ && has_tags "$pagedir" $tags then [ "$cnt" -eq 0 -a "$label" ] \ && printf '<%s class="macro pagelist label">%s' \ "$labeltype" "$(HTML "$label")" "$labeltype" [ "$cnt" -eq 0 ] && printf '\n' elif [ "$altlabel" ]; then printf '' "$(HTML "$altlabel")" fi }