3 CACHE_AGE=${CACHE_AGE:-1800}
4 export MD_MACROS="$_EXEC/macros"
5 export MD_HTML="${MD_HTML:-false}"
6 export WIKI_THEME=${WIKI_THEME:-default}
8 . "$_EXEC/themes/${WIKI_THEME}.sh"
10 if [ "$(which awk)" ]; then
11 md() { awk -f "$_EXEC/md_macros.awk" -f "$_EXEC/cgilite/markdown.awk"; }
12 elif [ "$(which busybox)" ]; then
13 md() { busybox awk -f "$_EXEC/md_macros.awk" -f "$_EXEC/cgilite/markdown.awk"; }
19 # Print content of a wiki page
20 # Get page from data or underlay dir, handle caching
21 local page="$(PATH "$1")" mdfile cache cachetime
23 cache="$_DATA/pages/$page/#page.${USER_ID}.cache"
25 mdfile="$(mdfile "$page")" || return 4
26 acl_read "$page" || return 3
28 cachetime="$(stat -c %Y -- "$mdfile" "$cache" 2>/dev/null)"
30 if [ "${cachetime#*${BR}}" -gt "${cachetime%${BR}*}" \
31 -a "${cachetime#*${BR}}" -gt "$((_DATE - CACHE_AGE))" ]; then
34 mkdir -p -- "$_DATA/pages/$page/"
35 # Macros expect to find page directory as working dir
36 ( cd -- "$_DATA/pages/$page/";
37 sed -E '1,20{ /^%[a-z]+/d; }' "$mdfile" \
38 | md |tee -- "${cache}.$$"
40 grep -q '^%nocache' "$mdfile" \
41 && rm -- "${cache}.$$" \
42 || mv -- "${cache}.$$" "${cache}"
46 case "${PATH_INFO}" in
48 FILE "${_EXEC}/${PATH_INFO#/\[.\]}"
52 export ERROR_MSG='Page names starting with "#" are not allowed'
60 theme_page "/[wiki]/login/"
64 theme_page "/[wiki]/register/"
68 theme_page "/[wiki]/invite/"
72 theme_page "${PATH_INFO}"