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