]> git.plutz.net Git - shellwiki/blobdiff - handlers/90_brackets.sh
Merge commit 'ed79d95d05abd733b958e653fd3cfd310120098f'
[shellwiki] / handlers / 90_brackets.sh
index b6b25383f32b4d58e000ac110e3cb0d0b45b64e5..ce49b0e9a36fd9456d74d99950da40609f5d5a1d 100755 (executable)
@@ -1,13 +1,30 @@
 #!/bin/sh
 
-# spacial case for bracket pages that are not handled otherwise
+# special case for odd pages that are not handled otherwise
+# usually those pages look like handlers (i.e. containing brackets)
+# but are not
 # attachment and edit (and really all) handlers should take precedence
 
 case "${PATH_INFO}" in
-  */\[*\]/*)
-    theme_page "${PATH_INFO}"
+  */\[view\])
+    # explicit view handler for linking
+    REDIRECT "${_BASE}${PATH_INFO%\[view\]}"
+    ;;
+  */)
+    if ! mdfile "${PATH_INFO}" >&-; then
+      theme_error 404
+    elif ! acl_read "${PATH_INFO}"; then
+      theme_error 403
+    else
+      theme_page "${PATH_INFO}"
+    fi
     return 0
     ;;
+  *)
+    if [ -d "$_DATA/pages${PATH_INFO}/" -o -d "$_EXEC/pages${PATH_INFO}/" ]; then
+      REDIRECT "${_BASE}${PATH_INFO}/"
+    fi
+    ;;
 esac
 
 return 1