3 . "$_EXEC/cgilite/cgilite.sh"
8 while [ $# -gt 0 ]; do case $1 in
30 page_abs="$(page_abs "$page")"
31 page_default="${page_abs%:*/}"
33 if ! acl_read "$page_abs"; then
37 printf '<div class="macro revisions">\n'
39 if [ "$REV_PAGES" != true ]; then
40 printf '<div class="error">GIT is not available to handle revisioning.</div>'
43 if [ "$LIST" = true ]; then
46 { git -C "$_DATA" log --date=format:"%a, %x %H:%M" \
47 --pretty=format:"%h %cd %s" \
48 -- "pages${page_abs}#page.md"
50 } | while read -r hash date message; do
51 user="${message% @*}"; user="${user##*@ }"
52 printf '<li><span class="hash"><a href="%s">%s</a></span><span class="date">%s</span><span class="user">%s</span></li>\n' \
53 "$(HTML "${page%/}/[revision]/$hash")" "$(HTML "$hash")" "$(HTML "$date")" "$(HTML "$user")"
58 if [ "$DIFF" = true -a "$LANGUAGE_DEFAULT" -a "$page_default" != "$page_abs" ]; then
59 commit="$(git -C "$_DATA" log --pretty=format:%H -- "pages${page_abs}#page.md" |head -n1)"
60 printf '<section class="diff"><h2>Latest changes to original language page</h2>'
61 git -C "$_DATA" diff -U3 "$commit" -- "pages${page_default}#page.md" |tail -n+5 \
62 | while read -r diff; do case $diff in
64 line="${diff#@@ * @@}"
65 num="${diff%"${line}"}"
66 printf '<span class="linenum">%s</span>\n' "$(HTML "$num")"
67 printf '<span class="line">%s</span>\n' "$(HTML "$line")"
69 -*) printf '<span class="linedel">%s</span>\n' "$(HTML "$diff")";;
70 +*) printf '<span class="lineadd">%s</span>\n' "$(HTML "$diff")";;
71 \ *) printf '<span class="line">%s</span>\n' "$(HTML "$diff")";;
72 \\\ *) printf '<span class="linenote">%s</span>\n' "$(HTML "$diff")";;