]> git.plutz.net Git - shellwiki/blob - macros/pagelist
Merge commit '1f887be68c8e777cdaa6853eb942f7b691bc1e4e'
[shellwiki] / macros / pagelist
1 #!/bin/sh
2
3 . "$_EXEC/cgilite/cgilite.sh"
4 . "$_EXEC/cgilite/users.sh"
5 . "$_EXEC/acl.sh"
6 . "$_EXEC/tools.sh"
7
8 dir="${1:-./}"
9 depth="${2:-1}"
10
11 printf '<ul class="pagelist">\n'
12   page_glob "$dir" \
13   | while read -r glob; do
14     printf %s\\n "$glob"
15     page_children "$glob" "$((depth - 1))"
16   done \
17   | while read -r page; do
18     case $page in
19       /*) pagedir="$(PATH "$page")";;
20       *)  pagedir="$(PATH "$PATH_INFO/$page")";;
21     esac
22     [ -f "$_DATA/pages/${pagedir}/#page.md" -o \
23       -f "$_EXEC/pages/${pagedir}/#page.md" ] \
24     && acl_read "$pagedir" \
25     && printf '<li><a href="%s">%s</a></li>' "$(HTML "$page")" "$(HTML "$page")"
26   done
27 printf '</ul>\n'