#!/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
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}.$$" \
case "${PATH_INFO}" in
/"[.]"/*)
+ # usually some file related to theme
+ # let file server handle errors
FILE "${_EXEC}/${PATH_INFO#/\[.\]}"
return 0
;;
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