From: Paul Hänsch Date: Mon, 23 May 2022 09:38:09 +0000 (+0200) Subject: allow page content from stdin for easyer theming of special pages X-Git-Url: https://git.plutz.net/?a=commitdiff_plain;h=9f4240c2867a03627e7b1615790255f1bbf7e568;p=shellwiki allow page content from stdin for easyer theming of special pages --- diff --git a/themes/default.sh b/themes/default.sh index e9e9d73..1f8d285 100755 --- a/themes/default.sh +++ b/themes/default.sh @@ -24,15 +24,18 @@ theme_pagemenu(){ if acl_write "$page"; then printf ' ' fi } theme_page(){ - local page="$1" title - title="${page%/}"; title="${title##*/}" + local page="$1" title="$2" id="$3" + title="$(HTML "${title:-"${page}"}")" + id="$(HTML "${id:-"${page}"}")" # Important! Web Server response including newline printf "%s\r\n" "Content-Type: text/html; charset=utf-8" "" @@ -41,14 +44,18 @@ theme_page(){ $(theme_head) - $(HTML "${title}") - + ${title} + $(theme_header)
$(theme_pagemenu) -
- $(wiki "$page" || printf 'Error while loading page
function "wiki" of index.sh returned with an error.') -
+ $(if [ "$page" = '-' ]; then + cat + else + printf '
' + wiki "$page" + printf '
' + fi)
$(theme_footer) @@ -61,25 +68,14 @@ theme_editor(){ [ "$template" ] && acl_read "$template" || template="$page" - # 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) - + theme_page - "Editor: $title" "${page}[edit]" <<-EOF +
+ + + + +
EOF } @@ -87,88 +83,51 @@ theme_revisions(){ local page="$1" title title="${page%/}"; title="${title##*/}" - # Important! Web Server response including newline - printf "%s\r\n" "Content-Type: text/html; charset=utf-8" "" - - cat <<-EOF - - - $(theme_head) - Revisions $(HTML "${title}") - - $(theme_header) -
- $("$_EXEC/macros/revisions" "$page") -
- $(theme_footer) - - EOF + "$_EXEC/macros/revisions" "$page" \ + | theme_page - "Revisions: $title" "${page}[revision]" } theme_attachments(){ local page="$1" title title="${page%/}"; title="${title##*/}" - # 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" "${page}[attachment]" <<-EOF +
+ + + +
+ +
EOF else - cat <<-EOF - - - $(theme_head) - Attachments $(HTML "${title}") - - $(theme_header) -
- -
- $(theme_footer) - + theme_page - "Attachments: $title" "${page}[attachment]" <<-EOF + EOF fi }