X-Git-Url: https://git.plutz.net/?a=blobdiff_plain;f=handlers%2F20_revision.sh;h=08350c7b80855bca4624a5091ea00f760edc6939;hb=4176213eafe0118f19fc492b3bfa5f23efa4acb0;hp=b34b2b9681378aae5fc0e7d67c29b63b5063a9ab;hpb=7af38aed3e2f4d019b371da3ec58a41457173248;p=shellwiki diff --git a/handlers/20_revision.sh b/handlers/20_revision.sh old mode 100644 new mode 100755 index b34b2b9..08350c7 --- a/handlers/20_revision.sh +++ b/handlers/20_revision.sh @@ -2,7 +2,7 @@ case "${PATH_INFO}" in */\[revision\]/) - REDIRECT "${_BASE}/${PATH_INFO%/}" + REDIRECT "${_BASE}${PATH_INFO%/}" ;; */\[revision\]) if ! acl_read "${PATH_INFO%\[revision\]}"; then @@ -12,7 +12,24 @@ case "${PATH_INFO}" in fi return 0 ;; - */[revision]/*):;; + */\[revision\]/\[*\]|*/\[revision\]/*/*) + REDIRECT "${_BASE}${PATH_INFO%%\[revision\]/*}${PATH_INFO##*/\[revision\]/}" + ;; + */\[revision\]/*) + page="${PATH_INFO%\[revision\]/*}" + rev="${PATH_INFO##*/}" + if ! acl_read "${page}"; then + theme_error 403 + else + ( export PATH_INFO="${page}" + cd "${_DATA}/pages${page}" || cd "${_DATA}/pages/" + git -C "${_DATA}" show "${rev}:pages${PATH_INFO}#page.md" \ + | { printf '
'; md; printf '
'; } \ + | theme_page - "${page##*/}" + ) + fi + return 0 + ;; esac return 1