X-Git-Url: https://git.plutz.net/?a=blobdiff_plain;f=themes%2Fdefault.sh;h=23b03f25552b86ba2e6e3fc03a2c46d322e4cbba;hb=532b6743da019906f2f00575d246823c66ec35fd;hp=563ea3afdbd8676a428bbb3b3fec30a57bff680e;hpb=2c724512b2e744027ae0a43d571f2e0c9fd820f3;p=shellwiki diff --git a/themes/default.sh b/themes/default.sh index 563ea3a..23b03f2 100755 --- a/themes/default.sh +++ b/themes/default.sh @@ -1,5 +1,19 @@ #!/bin/sh +# Copyright 2022 - 2023 Paul Hänsch +# +# Permission to use, copy, modify, and/or distribute this software for any +# purpose with or without fee is hereby granted, provided that the above +# copyright notice and this permission notice appear in all copies. +# +# THE SOFTWARE IS PROVIDED “AS IS” AND THE AUTHOR DISCLAIMS ALL WARRANTIES +# WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF +# MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY +# SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES +# WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN +# ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR +# IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + . "$_EXEC/tools.sh" theme_head(){ @@ -25,16 +39,17 @@ theme_pagemenu(){ local page="$1" if acl_write "$page"; then - printf ' - ' + cat <<-EOF + + EOF fi } @@ -74,62 +89,91 @@ theme_editor(){ [ "$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 + att="$(HTML "${file##*/}")" + url="$(printf %s\\n "${file##*/}" |sed 's;[\\<>];\\&;g' |HTML)" + name="$(printf %s\\n "${file##*/}" |sed 's;[]\\[];\\&;g' |HTML)" 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" + printf '

![](<%s>)

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

[%s](%s)

' "$att" "$att" + printf '

[%s](<%s>)

' "$name" "$url" ;; 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_search(){ + local words="$*" + # STDIN: read result pages line by line + + theme_page - <<-EOF +
+

$([ "$words" ] && _ "Search results" || _ "Search" )

+ +
    + $( while read p; do + printf '
  1. %s
  2. ' "$(URL "$p")" "$(HTML "$p")" + done) +
+
+ EOF +} + theme_attachments(){ local page="$1" title title="${page%/}"; title="${title##*/}" if acl_write "$page"; then - theme_page - "Attachments: $title" <<-EOF + theme_page - "$(_ Attachments): $title" <<-EOF
-

Upload

+

$(_ Upload)

- +
-

Attachments

+

$(_ Attachments)

- - - - + + + +
    $(for file in "$_EXEC/pages/$page/#attachments"/* "$_DATA/pages/$page/#attachments"/*; do @@ -151,16 +195,16 @@ theme_attachments(){ "$(size_human "$size")" "$(date -d @"$date" +"%F %T")" done)
- - - - - + + + + +
EOF else - theme_page - "Attachments: $title" <<-EOF + theme_page - "$(_ Attachments): $title" <<-EOF