X-Git-Url: https://git.plutz.net/?a=blobdiff_plain;f=handlers%2F10_page.sh;h=f8cbbafaae166c9f141af7d548c18f3a5cba47b5;hb=4bb6a2be511e608fa87fbb7b54d8ed275b844b30;hp=004dd03ced270f3b524b2b0b33b9ed07c75c7791;hpb=36ff6ab5b2eee5d4cb9eb877729685d80b1378e9;p=shellwiki diff --git a/handlers/10_page.sh b/handlers/10_page.sh index 004dd03..f8cbbaf 100755 --- a/handlers/10_page.sh +++ b/handlers/10_page.sh @@ -1,11 +1,11 @@ #!/bin/sh -CACHE_AGE=${CACHE_AGE:-1800} +. "$_EXEC/cgilite/file.sh" +. "$_EXEC/css.sh" + +CACHE_AGE=${CACHE_AGE:-300} export MD_MACROS="$_EXEC/macros" export MD_HTML="${MD_HTML:-false}" -export WIKI_THEME=${WIKI_THEME:-default} - -. "$_EXEC/themes/${WIKI_THEME}.sh" wiki() { # Print content of a wiki page @@ -37,6 +37,8 @@ wiki() { case "${PATH_INFO}" in /"[.]"/*) + # usually some file related to theme + # let file server handle errors FILE "${_EXEC}/${PATH_INFO#/\[.\]}" return 0 ;; @@ -50,11 +52,19 @@ case "${PATH_INFO}" in theme_error 400 return 0 ;; - */\[*\]/*) + */\[*\]/*|*/\[*\]) + # looks like some kind of handler return 1 ;; */) - theme_page "${PATH_INFO}" + if [ ! "$(mdfile "$PATH_INFO")" ]; then + theme_error 404 + elif ! acl_read "$PATH_INFO"; then + theme_error 403 + else + PAGE_CSS="$(css "${PATH_INFO}")" + theme_page "${PATH_INFO}" + fi return 0 ;; esac