X-Git-Url: https://git.plutz.net/?a=blobdiff_plain;f=themes%2Fdefault.sh;h=de357871bd49695f9a2b01efc81c1f12178b2628;hb=65676ea8331f60d882e3baec99c101382e9fad57;hp=0d60fb34a4144846925a50dbc54ebd716381e602;hpb=c54b9fb65cc638117cae1c7185ab4ac937462296;p=shellwiki diff --git a/themes/default.sh b/themes/default.sh index 0d60fb3..de35787 100755 --- a/themes/default.sh +++ b/themes/default.sh @@ -3,11 +3,14 @@ . "$_EXEC/tools.sh" theme_head(){ + local IFS="$BR" printf ' - - - - ' "$_BASE" + + ' + for css in "$_BASE/%5B.%5D/cgilite/common.css" "$_BASE/%5B.%5D/themes/default.css" $PAGE_CSS; do + printf '' \ + "$(HTML "${css##*//}")" + done } theme_header(){ @@ -15,41 +18,50 @@ theme_header(){ } theme_footer(){ - printf '' "$(wiki '[wiki]/footer/' ||echo No footer)" + printf '' "$(wiki '[wiki]/footer/')" } -theme_page(){ - local page="$1" title - title="${page%/}"; title="${title##*/}" +theme_pagemenu(){ + local page="$1" - if [ ! "$(mdfile "$page")" ]; then - theme_error 404 - return 0 - elif ! acl_read "$page"; then - theme_error 403 - return 0 + if acl_write "$page"; then + cat <<-EOF + + EOF fi +} + +theme_page(){ + local page="$1" title="$2" + title="$(HTML "${title:-"${PAGE_TITLE:-"${page}"}"}")" # Important! Web Server response including newline printf "%s\r\n" "Content-Type: text/html; charset=utf-8" "" cat <<-EOF - + $(theme_head) - $(HTML "${title}") - + ${title} + $(theme_header)
- $(acl_write "$page" && printf %s \ - '' - ) -
- $(wiki "$page" || printf 'Error while loading page
function "wiki" of index.sh returned with an error.') -
+ $(theme_pagemenu) + $(if [ "$page" = '-' ]; then + cat + else + printf '
' + wiki "$page" + printf '
' + fi)
$(theme_footer) @@ -57,107 +69,118 @@ theme_page(){ } theme_editor(){ - local page="$1" title - title="${page%/}"; title="${title##*/}" - - if ! acl_write "$page"; then - theme_error 403 - return 0 - fi - - # Important! Web Server response including newline - printf "%s\r\n" "Content-Type: text/html; charset=utf-8" "" - - cat <<-EOF - - - $(theme_head) - $(HTML "${title}") - - $(theme_header) -
- - - - -
- $(theme_footer) - + local page="$1" template="$2" title file att + title="$(HTML "${PAGE_TITLE:-"${page}"}")" + + [ "$template" ] && acl_read "$template" || template="$page" + + theme_page - "Editor: $title" <<-EOF + + + + $([ "$LANGUAGE_DEFAULT" -a "$LANGUAGE_DEFAULT" != "$LANGUAGE" ] && printf ' + + ' "$LANGUAGE_DEFAULT" + ) +
+ + + + +
+
$(wiki "/[wiki]/editorhelp/")
+
+ $(for file in "$_EXEC/pages/${page%/:$LANGUAGE/}/#attachments"/* "$_DATA/pages/${page%/:$LANGUAGE/}/#attachments"/*; do + [ "$file" = "$_EXEC/pages/${page%/:$LANGUAGE/}/#attachments/${file##*/}" \ + -a -f "$_DATA/pages/${page%/:$LANGUAGE/}/#attachments/${file##*/}" ] && continue + case ${file##*/} in + \*) continue;; + *.[pP][nN][gG]|*.[jJ][pP][gG]|*.[jJ][pP][eE][gG]|*.[gG][iI][fF]) + [ "$page" != "${page%/:$LANGUAGE/}" ] && p=../ || p='' + att="$(HTML "${file##*/}")" + printf '

![](%s)

' \ + "$p" "$att" "$att" "$att" "$att" "$att" "$att" "$att" + ;; + *) + att="$(HTML "${file##*/}")" + printf '

[%s](%s)

' "$att" "$att" + ;; + esac + done) +
+ $(if [ "$LANGUAGE_DEFAULT" -a "$LANGUAGE_DEFAULT" != "$LANGUAGE" ]; then + printf '
%s
' "$(LANGUAGE='' wiki_text "${page%/:$LANGUAGE/}" |HTML)" + fi) EOF } +theme_revisions(){ theme_page "$@"; } + theme_attachments(){ local page="$1" title title="${page%/}"; title="${title##*/}" - if [ ! "$(mdfile "$page")" ]; then - theme_error 404 - return 0 - elif ! acl_read "$page"; then - theme_error 403 - return 0 - fi - - # Important! Web Server response including newline - printf "%s\r\n" "Content-Type: text/html; charset=utf-8" "" - if acl_write "$page"; then - cat <<-EOF - - - $(theme_head) - Attachments $(HTML "${title}") - - $(theme_header) -
-
- - - -
- -
    - - $(for file in "$_EXEC/pages/$page/#attachments"/* "$_DATA/pages/$page/#attachments"/*; do - [ "$file" = "$_EXEC/pages/$page/#attachments/${file##*/}" \ - -a -f "$_DATA/pages/$page/#attachments/${file##*/}" ] && continue - stat="$(stat -c '%s %Y' -- "$file" 2>&-)" || continue - size="${stat% *}" date="${stat#* }" - - printf '
  • %s - %s%s
  • ' \ - "$(HTML "${file##*/}")" "$(HTML "${file##*/}")" "$(HTML "${file##*/}")" \ - "$(size_human "$size")" "$(date -d @"$date" +"%F %T")" - done) -
-
- $(theme_footer) - + theme_page - "Attachments: $title" <<-EOF +
+

$(_ Upload)

+ + + +
+ +
+

$(_ Attachments)

+ + + + + +
+
    + $(for file in "$_EXEC/pages/$page/#attachments"/* "$_DATA/pages/$page/#attachments"/*; do + [ "$file" = "$_EXEC/pages/$page/#attachments/${file##*/}" \ + -a -f "$_DATA/pages/$page/#attachments/${file##*/}" ] && continue + stat="$(stat -c '%s %Y' -- "$file" 2>&-)" || continue + size="${stat% *}" date="${stat#* }" + hfile="$(HTML "${file##*/}")" + + printf '
  • + + + %s + %s + %s +
  • ' \ + "$hfile" "$hfile" "$hfile" "$hfile" \ + "$(slopecode "${file##*/}")" "$hfile" "$hfile" "$hfile" \ + "$(size_human "$size")" "$(date -d @"$date" +"%F %T")" + done) +
+ + + + + +
+
EOF else - cat <<-EOF - - - $(theme_head) - Attachments $(HTML "${title}") - - $(theme_header) -
- -
- $(theme_footer) - + theme_page - "Attachments: $title" <<-EOF + EOF fi } @@ -173,7 +196,7 @@ theme_error(){ 500) printf "%s\r\n" "Status: 500 Internal Server Error";; esac - if [ "$(mdfile "/[wiki]/$errno/")" ]; then + if mdfile "/[wiki]/$errno/" >&-; then theme_page "/[wiki]/$errno/" else printf "Content-Length: 0\r\n\r\n"