X-Git-Url: https://git.plutz.net/?a=blobdiff_plain;f=handlers%2F10_page.sh;h=99b79a43e8c70c5beabbf4b6d38882d96378aac7;hb=5e41ef419be25a2c23c8eff06acb5ebadf523f5a;hp=334df197d9694f72dfd8ccdfbc7c4fba69a96feb;hpb=0e2b2e5a68f0e5a32bc4e7d869b475b744582643;p=shellwiki diff --git a/handlers/10_page.sh b/handlers/10_page.sh index 334df19..99b79a4 100755 --- a/handlers/10_page.sh +++ b/handlers/10_page.sh @@ -1,11 +1,10 @@ #!/bin/sh -CACHE_AGE=${CACHE_AGE:-1800} +. "$_EXEC/cgilite/file.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 @@ -26,8 +25,8 @@ wiki() { mkdir -p -- "$_DATA/pages/$page/" # Macros expect to find page directory as working dir ( cd -- "$_DATA/pages/$page/"; - sed -E '1,20{ /^%[a-z]+/d; }' "$mdfile" \ - | md |tee -- "${cache}.$$" + md <"$mdfile" \ + | tee -- "${cache}.$$" ) grep -q '^%nocache' "$mdfile" \ && rm -- "${cache}.$$" \ @@ -54,7 +53,13 @@ case "${PATH_INFO}" in return 1 ;; */) - theme_page "${PATH_INFO}" + if [ ! "$(mdfile "$page")" ]; then + theme_error 404 + elif ! acl_read "$page"; then + theme_error 403 + else + theme_page "${PATH_INFO}" + fi return 0 ;; esac