- \#*|*/\#*) continue;;
- *) pagedir="$(page_abs "$page")";;
- esac
- [ -d "$_DATA/pages/$pagedir" -o -d "$_EXEC/pages/$pagedir" ] \
- && printf '%s\n' "$page"
- done
-}
-
-page_children(){
- local page="${1:-${PATH_INFO}}" depth="${2:-1}"
- local glob pagedir IFS=''
- page="${page%/}/"
-
- [ "$depth" -eq 0 ] && return 0
-
- case $page in
- /*)
- for glob in "$_DATA/pages/${page}"*/; do printf '%s\n' "${glob#"$_DATA/pages/"}"; done
- for glob in "$_EXEC/pages/${page}"*/; do printf '%s\n' "${glob#"$_EXEC/pages/"}"; done
- ;;
- *)
- for glob in "$_DATA/pages/$PATH_INFO/${page}"*/; do printf '%s\n' "${glob#"$_DATA/pages/$PATH_INFO/"}"; done
- for glob in "$_EXEC/pages/$PATH_INFO/${page}"*/; do printf '%s\n' "${glob#"$_EXEC/pages/$PATH_INFO/"}"; done
- ;;
- esac \
- | sort -u \
- | while read -r page; do
- case $page in
- \#*|*/\#*) continue;;
+ \#*|*/\#*) # Not a page directory (just a metadata dir)
+ continue
+ ;;
+ \[*\]/*|*/\[*\]/*) # Omit "system" pages unless explicitly wanted
+ [ "$glob_system_pages" != true ] \
+ && continue \
+ || pagedir="$(page_abs "$page")"
+ ;;
+ \:*|*/\:*) # Omit translation pages if translations are enabled
+ [ "$LANGUAGE_DEFAULT" ] \
+ && continue \
+ || pagedir="$(page_abs "$page")"
+ ;;